楼主:
BIAO (超越自己)
2015-05-06 11:50:15各位板友大家好,
之前用C++写的计算程式目前有一点问题,
发生的机率不高,但发生了就会导致资料少了一点。
查证后发现是在使用thread pool时,
程式貌似没有顺利被启动。
片段程式码如下:
QueueUserWorkItem( DataThread, &threadData, WT_EXECUTEDEFAULT );
DWORD WINAPI DataThread(PVOID pContext)
{
..(略
pThreadData->pArchiver->AData( pThreadData->st );
pThreadData->pArchiver->BData( pThreadData->st );
pThreadData->pArchiver->CData( pThreadData->st );
pThreadData->pArchiver->DData( pThreadData->st );
return 1;
}
但有时候会发生AData有运算,但B~DData程式皆没被执行,
会知道是因为每个程式开始时我都会写入谁被启动的资讯至记事本。
目前是每15分钟时会启动DataThread一次。
请问有板友遇过相同的问题吗?又是如何解决的呢!?