[問題] Thread Sync的觀念請教
大家好
我目前有遇到一個case是 多個thread會跑到某個scope後 必須一個一個近去做
而我是想使用 AutoResetEvent
我觀念是
他就算多個Thread卡在WaitOne那邊
只要某處Set Event的話 會"隨機" 選 "1" 個 Thread 通過WaitOne那行
以上不知是否觀念有錯
我無法查到是不是只會允許一個通過
還是當某處Set後 會有可能多個通過WaitOne那行....
但這個缺點是
我希望是先Wait的先通過WaitOne那行繼續作
是不是AutoResetEvent又不能達到我目的
所以我現在想改用ManualResetEvent
但問題來了@@
當某處Set Event後
WaitOne那行過了
再執行ResetEvent那行之間
我認為會有多個Thread 有機會 通過WaitOne那行 導致無法達成一次一個Thread
我想了一下
如果用以下方法不知道可不可行
目的是達成 一次一個thread進去 又達到FIFO的順序
lock( MyObject )//Lock我有查書說是用queue去維持FIFO....但我查MSDN沒有查到行為
...
{
MEvent.WaitOne();
}
//Do something.
這樣就能保證 一次一個Thread再Wait 其他Thread都卡在lock
也能保證FIFO..
以上觀念是否有錯
請大家糾正
謝謝
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 122.147.15.66
推
03/09 17:27, , 1F
03/09 17:27, 1F
→
03/09 18:02, , 2F
03/09 18:02, 2F
推
03/09 19:56, , 3F
03/09 19:56, 3F
→
03/09 20:50, , 4F
03/09 20:50, 4F