【发布时间】:2015-01-12 03:42:02
【问题描述】:
在对组件进行单元测试时,我需要验证组件对在不同时间完成的任务的反应。
如何创建可以随意解析的Task<>?
【问题讨论】:
在对组件进行单元测试时,我需要验证组件对在不同时间完成的任务的反应。
如何创建可以随意解析的Task<>?
【问题讨论】:
您可以使用TaskCompletionSource 来创建完全“手动”的任务。
表示未绑定到委托的任务的生产者端, 通过 Task 属性提供对消费者端的访问。
将完成源的Task 属性分发给消费者,并在其上(随意)调用SetResult 以完成任务。请注意,您还有 SetCanceled 和 SetException 分别代表取消和失败。
【讨论】:
SetResult?过一段时间?有办法控制吗?
Set*** 方法可以在任何线程上调用,并且对象本身是线程安全的。它还提供了TrySet*** 系列方法来处理比赛。