我试图围绕 TPL、C# 5 中的新async
/await
功能以及TaskCompletionSource
.
我不清楚的一件事是何时使用SetResult
,SetException
和SetCancel
vs TrySetResult
, TrySetException
and TrySetCancel
。
这是 MSDN 不得不说的:
如果任务已处于三种最终状态之一,则此操作将返回 false:RanToCompletion、Faulted 或 Canceled。
如果底层任务已被释放,此方法也会返回 false。
好的,我明白了,但它并没有真正提供关于何时或为什么使用其中一个而不是另一个的任何指导。
那么,有什么关系呢?