2017-08-29 52 views
-1

的考慮,我已經通過了兩項ManualEventReset instancesManualEventReset - 等待任何兩個

public void MyApiCall(ManualResetEvent ev1, ManualResetEvent ev2) 
{ 
    //my code 
} 

現在,我必須「WaitOne」對於任何兩個(無論哪個人,我需要儘快繼續作爲其中一個提出的信號)。有可能不改變API?

解決的辦法之一是自旋鎖:

while (!ev1.WaitOne(0) && !ev1.WaitOne(0)) 
{ 
    Thread.Sleep(500); 
} 

但我不知道是否有一些更好的解決方案。

+1

你正在尋找[WaitHandle.WaitAny](https://msdn.microsoft.com/ru-ru/library/cc189983(V = vs.110)的.aspx) –

+1

@GeorgeAlexandria哦,那正是我所期待的。也許你應該發表一個答案? :) – pwas

+0

爲什麼downvote?我的問題有沒有不清楚? – pwas

回答