Task.Delay(-1)有任何用例吗?

时间:2016-08-19 21:51:20

标签: c# .net vb.net async-await task-parallel-library

我想知道Task.Delay(-1)Task.Delay(TimeSpan.FromMilliseconds(-1))是否有任何用例。根据各自的文档,该方法创建在完成之前无限期等待的任务。我知道await Task.Delay(...)不会阻塞线程也不会消耗太多资源,但是当浪费一些资源实际上很有用时,我想不出任何情况。

我的问题是关于Task.Deley()没有取消令牌的重载 - overloads that include cancellation token可能会更有用,因为等待期可能会中断。

我是否错过了无限期等待任务的一些用例?它们只存在于方法重载之间的一致性吗?

1 个答案:

答案 0 :(得分:5)

我不认为他们打算将它用作Task.Delay(-1),而是使用Task.Delay(-1,cancellationToken)。这样你就可以开始你的任务并永久阻止它,或者直到cancelToken(在这种情况下是一个"开始标记")被触发。我无法想到自己做.Delay(-1)的原因,因为这也会阻止进程退出。