当使用
WaitHandle.WaitAny
和Semaphore
类时,如下所示:var s1 = new Semaphore(1, 1);
var s2 = new Semaphore(1, 1);
var handles = new [] { s1, s2 };
var index = WaitHandle.WaitAny(handles);
handles[index].Release();
看起来使用WaitHandle.WaitAny
只会获得一个信号量。
对于异步(async/await)代码,是否可能获得类似的行为?
Task.WaitAny
似乎只是Task.WhenAny
的同步版本。 - drowa