2017-08-29 3 views
-1

のいずれかが、私は今、2 ManualEventReset instancesManualEventReset - 両方

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

に合格している、私は(両方のいずれかのために「WaitOne」、私は、すぐに継続する必要があり、それらの関係なく持っていることを考慮して待ちますそれらの1つとしてシグナルを上げた)。 APIを変更しなくても可能ですか?

解決策の1つはスピンロックです:

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

しかし、いくつかのよりよい解決策があるのだろうか。

+1

(https://msdn.microsoft.com/ru-ru/library/cc189983(V = vs.110).aspxの) –

+1

@GeorgeAlexandriaオハイオ州、それはまさに私が探していたものでした。あなたは答えを投稿するべきでしょうか? :) – pwas

+0

なぜdownvote?私の質問には不明な点がありますか? – pwas

答えて

2

あなたはWaitHandle.WaitAnyを探しています。

例:[WaitHandle.WaitAny]を探している

​​