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

看板C_and_CPP (C/C++)作者 (超越自己)時間11年前 (2015/05/06 11:50), 編輯推噓0(005)
留言5則, 3人參與, 最新討論串1/1
各位板友大家好, 之前用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一次。 請問有板友遇過相同的問題嗎?又是如何解決的呢!? -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 125.227.3.236 ※ 文章網址: https://www.ptt.cc/bbs/C_and_CPP/M.1430884218.A.1EE.html

05/06 15:43, , 1F
正常是要ABCD依序執行嗎?
05/06 15:43, 1F

05/06 18:35, , 2F
出了exception整條theard被終止?
05/06 18:35, 2F

05/07 11:49, , 3F
回T大,對阿..因為程式碼的順序是這樣..但只執行了A..
05/07 11:49, 3F

05/07 11:50, , 4F
回a大..目前猜想有這個可能!不過因為LOG記錄龐大..
05/07 11:50, 4F

05/07 11:50, , 5F
只好再為程式加上顯著的LOG點,確認斷在哪裡..
05/07 11:50, 5F
文章代碼(AID): #1LIOzw7k (C_and_CPP)
文章代碼(AID): #1LIOzw7k (C_and_CPP)