這是我需要做的 - 1.定義一個句柄threadHandle並定義一個句柄h [20] ...數組中的每個條目的值爲threadHandle。waitformultipleobjects句柄數量未知
- 我的代碼打開了20個線程,一旦完成,每個線程都有信號的主線程,一旦所有這些信號,主線程必須登錄東西日誌文件。
我打算做類似:
限定threadHandle和如上所定義的手柄H [20}陣列。
Obnce的代碼打開20個線程,這樣做 - waitformultipleobjects(NULL,20,h,true,10000)
現在的代碼將等待所有的H數組中的手柄,以等待返回之前進行設置。但由於h的所有值都相同,所以等待函數返回一個錯誤。有沒有辦法解決這個問題?我基本上需要所有線程發回調用線程......爲20個線程中的每一個定義20個處理程序似乎也不是一個好主意。
我可以這樣做嗎? -
define threadHandle和句柄數組h [20]。 維護一個變量計數,用於發回主線程的線程數。
waitforsingleobject(threadHandle)
一旦這種收益,增量次數,如果數< 20重複上面的等待語句。 繼續操作直到count = 20,然後登錄到文件。 當然,如果有任何等待時間超時,那麼我們會在日誌文件中記錄失敗。
我想這個,但想知道是否有更好的方法來做到這一點。
TIA。 anand
在多個線程中使用相同的事件將不起作用。很有可能你會錯過幾個有意義的事件。相反,如傑裏所說的,使用20個獨特的事件。有一個EVT_BASE並將每個事件初始化爲EVT_BASE + 1 ... + 20。你也可以改進你的設計來包裝子線程並隱藏初始化 – Gayan
所有的值都是一樣的嗎? WTF? –