[問題] threadpool內的程式沒有啟動@@?

作者: 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一次。
請問有板友遇過相同的問題嗎?又是如何解決的呢!?
作者: TobyH4cker (Toby (我要當好人))   2015-05-06 15:43:00
正常是要ABCD依序執行嗎?
作者: azureblaze (AzureBlaze)   2015-05-06 18:35:00
出了exception整條theard被終止?
作者: BIAO (超越自己)   2015-05-07 11:49:00
回T大,對阿..因為程式碼的順序是這樣..但只執行了A..回a大..目前猜想有這個可能!不過因為LOG記錄龐大..只好再為程式加上顯著的LOG點,確認斷在哪裡..

Links booklink

Contact Us: admin [ a t ] ucptt.com