[問題] 等待另一線程完成,要怎寫比較好?

看板C_and_CPP (C/C++)作者 (啤酒肚)時間15年前 (2010/11/20 21:33), 編輯推噓0(0012)
留言12則, 4人參與, 最新討論串1/1
有兩個函數,在各別的線程中 BOOL locked = FALSE; int KeepDo(void) { : while(onThread) { locked = TRUE; /* do some thing; */ locked = FALSE; : } : }/*Keep Do*/ int CalledByExtern(void) { flag = o; wait ( FALSE ==locked); return flag; } 藍色的地方就是我的問題所在,這裡要怎寫比較好呢? 當然locked不一定要用bool型態。 用sleep去睡 這很難調每次要睡多久,且這有硬體特性相依的問題。 有沒高手能給建意的呢? 謝謝 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 58.115.143.194

11/20 21:34, , 1F
event WaitForSingleObject?
11/20 21:34, 1F

11/20 21:34, , 2F
用 Mutex 或 Semaphore 之類的...?
11/20 21:34, 2F

11/20 21:37, , 3F
Mutex 或 Semaphore可以給個例嗎? 謝謝
11/20 21:37, 3F

11/20 21:38, , 4F
謝謝兩位喔
11/20 21:38, 4F

11/20 21:39, , 5F
google找找看吧
11/20 21:39, 5F

11/20 23:05, , 6F
初始event
11/20 23:05, 6F

11/20 23:06, , 7F
HANDLE hEvent=CreateEvent( NULL, false, false, NULL );
11/20 23:06, 7F

11/20 23:07, , 8F
SetEvent(hEvent); //設為未lock狀態
11/20 23:07, 8F

11/20 23:09, , 9F
WaitForMultipleObjects(1,&hEvent,false,INFINITE); //無
11/20 23:09, 9F

11/20 23:11, , 10F
限等待hEvent被unlock,一旦等到hEvent被unlock,就立刻把
11/20 23:11, 10F

11/20 23:11, , 11F
hEvent設成lock狀態
11/20 23:11, 11F

11/21 13:43, , 12F
謝謝ljhgc :)
11/21 13:43, 12F
文章代碼(AID): #1CvyugCg (C_and_CPP)
文章代碼(AID): #1CvyugCg (C_and_CPP)