Ans*_*iņš 4 .net c# task-parallel-library
我想要一个类似EventWaitHandle的任务,我在一端等待它,然后将其设置为在另一端完成。TaskCompletionSource几乎是我想要的,但它需要我传递一个值。我可以只使用一个虚拟值,但在我这样做之前,我想我会看看是否有更正确的解决方案。
关键是能够使用Task.WaitAny。
我在源代码中看到的最常见的情况是简单地创建一个空的struct,这相当于什么都没有。或者使用 abool作为虚拟对象:
internal struct Void { }
Run Code Online (Sandbox Code Playgroud)
进而:
var tcs = new TaskCompletionSource<Void>();
Run Code Online (Sandbox Code Playgroud)
我也在BCL 源代码中看到了这种常见模式:
// Special internal struct that we use to signify that we are not interested in
// a Task<VoidTaskResult>'s result.
internal struct VoidTaskResult { }
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
482 次 |
| 最近记录: |