等待Task.Delay()延迟预期时间我有一个大量使用.Net任务的Windows服务应用程序。我对它们有很好的了解,但我不是专业人士,而且我遇到了问题。我遇到的情况是我的awaitTask.Delay()有时需要更长的时间(最多60秒)。我确定这是由于我正在做的事情,但我无法追踪它可能会如何影响它。这是我正在做的事情的一个简化的、人为的例子。publicasyncTaskDoDelay(CancellationTokentoken=default(CancellationToken)){//延迟然后检查是否需要延长可见性超时DateTimebeforeDelay=DateTime.Now;//等待180秒,即3分钟等待任务。延迟((int)180*1000,令牌).ConfigureAwait(假);//检查我们实际延迟了多长时间TimeSpandurationOfDelay=DateTime.Now-beforeDelay;Trace.WriteLine("持续时间:"+durationOfDelay.TotalSeconds.ToString());有时durationOfDelay比我延迟的durationOfDelay长60秒。作为一些背景,可能有多个其他任务调用DoDelay()并同时运行。我有时看到所有预期的Task.Delay()调用同时完成,尽管在不同的时间等待相同的延迟值。例如://在00:00执行的非等待调用DoDelay();//非等待调用在00:10执行DoDelay();//非等待调用在00:20执行DoDelay();//时间流逝....//跟踪输出://"Duration:200"//"Duration:190"//"Duration:180"什么会导致这种情况?以上就是C#学习教程:等待Task.Delay()延迟预期时间的全部内容分享。如果对你有用,需要进一步了解C#学习教程,希望大家多多关注。本文收集自网络,不代表立场,如涉及侵权,请点击右边联系管理员删除。如需转载请注明出处:
