【发布时间】:2022-05-04 05:28:05
【问题描述】:
Task.Delay 可以被告知延迟的最大持续时间是int.MaxValue 毫秒。创建Task 的最简洁方法是什么?
// Fine.
await Task.Delay(TimeSpan.FromMilliseconds(int.MaxValue));
// ArgumentOutOfRangeException
await Task.Delay(TimeSpan.FromMilliseconds(int.MaxValue + 1L));
【问题讨论】:
-
我无法理解在什么情况下您会想要延迟……(支票计算器)……24.86 天。
-
25 天的等待时间很长。如果您想永远等待,可以使用
Task.Delay(-1) -
@DanielMann 我正在编写一个缓存,它会在给定时间段后删除条目。虽然不太可能有人想要缓存这么长时间的东西,但我不希望它成为一个限制因素。
-
Task.Delay似乎不适合这种情况。 -
您有其他方法吗?我的代码(简化)归结为:
AddEntry(key, value); Task.Delay(12345).ContinueWith(/* Remove entry. */);
标签: c# .net async-await task task-parallel-library