Создаю поток методом bCreate:
| Код | //--------------------------------------------------------------------------- BOOL CXThread::bCreate(const pThreadProc ptfStartAddress, VOID *pvParam) { HANDLE hRes = NULL; hRes = reinterpret_cast<HANDLE>(_beginthreadex(NULL, 0, _s_uiStartFunc, this, 0/*not paused*/, (UINT *)&_m_ulID)); /*DEBUG*/XASSERT_RET(NULL != hRes, FALSE); //не срабатывает !!!
_m_hThread = hRes; /*DEBUG*/XASSERT_RET(NULL != _m_hThread, FALSE); //не срабатывает !!! return TRUE; } //--------------------------------------------------------------------------- /*static*/ UINT WINAPI CXThread::_s_uiStartFunc(VOID *pvParam) { /*DEBUG*/XASSERT_RET(NULL != pvParam, 0);
UINT uiRes = 0;
CXThread *pthThis = static_cast<CXThread *>(pvParam); /*DEBUG*/XASSERT_RET(NULL != pthThis, 0); //не срабатывает !!! /*DEBUG*/XASSERT(NULL != pthThis->_m_hThread); //!!! иногда срабатывает
//... return uiRes; } //---------------------------------------------------------------------------
|
Почему иногда срабатывает эссерт?
| Код | /*DEBUG*/XASSERT(NULL != pthThis->_m_hThread);
|
|