我想要一个 EventWaitHandle -like Task,我在一端等待它,然后将其设置为在另一端完成。 TaskCompletionSource几乎是我想要的,但它需要我传递一个值。我可以只使用一个虚拟值,但在我这样做之前,我想我会看看是否有更正确的解决方案。
重点是能用Task.WaitAny .
最佳答案
我在源代码中看到的最常见的场景就是创建一个空的 struct
这相当于什么都没有。或使用 bool
作为假人:
internal struct Void { }
进而:
var tcs = new TaskCompletionSource<Void>();
我在 BCL source code 中看到了这种常见模式还有:
// Special internal struct that we use to signify that we are not interested in
// a Task<VoidTaskResult>'s result.
internal struct VoidTaskResult { }
关于c# - 我如何做等效的 TaskCompletionSource<nothing>?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31287559/