为什么来自 TaskCompletionSource 的任务在 5 秒后没有完成?
Why is the task from TaskCompletionSource not completed after 5 seconds?
当我将 CancellationTokenSource 设置为 5 秒后取消时。 TaskCompletionSource 不会被取消。
[Test]
public async Task Test()
{
var cts = new CancellationTokenSource(TimeSpan.FromSeconds(5));
var completionSource = new TaskCompletionSource(cts.Token);
await completionSource.Task;
}
TaskCompletionSource
对象在构造函数中不采用取消标记,它采用任何 object
。它不应该收听取消标记。
您可以阅读 MSDN article 以了解构造函数的作用以及如何使用 TaskCompletionSource
对象。
您可能想使用 SetCanceled
方法。
当我将 CancellationTokenSource 设置为 5 秒后取消时。 TaskCompletionSource 不会被取消。
[Test]
public async Task Test()
{
var cts = new CancellationTokenSource(TimeSpan.FromSeconds(5));
var completionSource = new TaskCompletionSource(cts.Token);
await completionSource.Task;
}
TaskCompletionSource
对象在构造函数中不采用取消标记,它采用任何 object
。它不应该收听取消标记。
您可以阅读 MSDN article 以了解构造函数的作用以及如何使用 TaskCompletionSource
对象。
您可能想使用 SetCanceled
方法。