1

当我将 CancellationTokenSource 设置为 5 秒后取消时。TaskCompletionSource 不会被取消。

[Test]
public async Task Test()
{
  var cts = new CancellationTokenSource(TimeSpan.FromSeconds(5));      
  var completionSource = new TaskCompletionSource(cts.Token);

  await completionSource.Task;
}
4

1 回答 1

4

TaskCompletionSource对象在构造函数中不采用取消标记,它采用任何object. 它不应该听取消令牌。

您可以阅读MSDN 文章以了解构造函数的作用以及如何使用该TaskCompletionSource对象。

您可能想使用该SetCanceled方法。

于 2022-01-18T11:33:30.477 回答