【发布时间】:2021-03-03 07:49:57
【问题描述】:
当使用WaitHandle.WaitAny and Semaphore class 时,如下所示:
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.WaitAny似乎只是Task.WhenAny的同步版本。 -
我也打算发Task.WhenAny()。
-
那么你应该投票赞成这个问题。
-
@drowa:对于您遇到的任何问题,这几乎肯定是错误的解决方案。您要解决的实际问题是什么?
标签: c# asynchronous