public static async Task<TResult> TaskTimeoutAfter<TResult>(this Task<TResult> task, int timeout)
{
using (var timeoutCancellationTokenSource = new CancellationTokenSource())
{
var completedTask = await Task.WhenAny(task, Task.Delay(timeout, timeoutCancellationTokenSource.Token));
if (completedTask == task)
{
timeoutCancellationTokenSource.Cancel();
return await task;
}
throw new TimeoutException("The operation has timed out");
}
}
C# 任务设置超时取消
异步操作的定时超时处理
最新推荐文章于 2025-03-05 13:10:17 发布
文章介绍了如何在.NET中使用Task类的TaskTimeoutAfter扩展方法,实现对异步任务的定时超时控制,当任务在给定时间内未完成时抛出TimeoutException。
1017

被折叠的 条评论
为什么被折叠?



