在单元测试中,我需要验证组件对于在不同时间完成任务的反应。
我该如何创建一个可以随意解决的 Task<>
?
在单元测试中,我需要验证组件对于在不同时间完成任务的反应。
我该如何创建一个可以随意解决的 Task<>
?
你可以使用 TaskCompletionSource
创建一个完全“手动”的任务。
表示一个未绑定到委托的 Task 的生产方,通过 Task 属性提供对消费方的访问。
将完成源的 Task
属性分配给消费者,并在需要时调用 SetResult
来完成任务。请注意,还有SetCanceled
和SetException
方法分别表示取消和失败。
SetResult
被调用时吗?或是稍后的某个时间?有没有办法控制这个过程? - George MauerSet***
方法可以在任何线程上调用,对象本身也是线程安全的。它还提供了TrySet***
方法族来处理竞争。 - Ani