作者:
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一次。
請問有板友遇過相同的問題嗎?又是如何解決的呢!?