[問題] 有關MultiThread的問題

看板C_and_CPP (C/C++)作者 (系子)時間16年前 (2009/12/15 18:34), 編輯推噓0(002)
留言2則, 1人參與, 最新討論串1/1
( *[1m *[m 為色碼,可以按 Ctrl+V 預覽會顯示的顏色 ) ( 未必需要依照此格式,文章條理清楚即可 ) 遇到的問題: Thread WaitForSingleObject會hang 希望得到的正確結果:不會hang 程式跑出來的錯誤結果: 開發平台:VC2003 (例: VC++ or gcc/g++ or Dev-C++, Windows or Linux) 有問題的code: (請善用置底文標色功能) 我的Code大致如下 //main 1.CreateThread (一次建出3條thread) 成功之後 2.CreateEvent(g_ExitExitEvent, TRUE, FALSE, NULL); && SetEvent(g_ExitEvent) 3.WaitForMultipleObject(all) end // Thread 每個thread做的事情都是 1. printf("hell") 2. 透過if(WaitForSingleObject(g_ExitEvent, INFINITE) == WAIT_OBJECT_0); 等待main的將event signaled後 return掉 但目前遇到的狀況是 每次都只有一個Thread會收到event然後return 其他Thread都會hang在 WaitForSingleObject 我CreateEvent中 bManualSet這參數設為True,照我的想法 應該就是event被signaled之後就會一直處於signaled狀態 不知道為何目前會跑出這樣的結果呢? 多謝各位看完,也希望高手能幫我解惑 謝謝各位 補充說明: -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 123.50.53.228 ※ 編輯: theee 來自: 123.50.53.228 (12/15 21:51)

12/15 22:47, , 1F
WaitForMultipleObject只要任何一個signaled就會通過
12/15 22:47, 1F

12/15 22:47, , 2F
所以我猜是你第一個thread過去之後mainthread就結束了
12/15 22:47, 2F
文章代碼(AID): #1B9sOhUa (C_and_CPP)
文章代碼(AID): #1B9sOhUa (C_and_CPP)