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

Tom*_*ski 3 .net c# vb.net task-parallel-library async-await

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

我的问题具体是关于Task.Deley()没有取消令牌的重载 - 包含取消令牌的重载可能会更有用,因为等待期可以被中断.

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

Sle*_*mer 5

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