【发布时间】:2019-06-11 23:13:22
【问题描述】:
有没有办法等待任务结束但在一段时间后继续执行但让任务本身继续执行?我希望在 5 秒内从任务中得到响应,并且不想等待更长的时间 - 但是,如果超过 5 秒,我只想继续前进而不是实际取消任务(排除取消令牌)。
我正在使用 .NET Core / C#。
private async Task<string> MakeAuthRequest(Request request)
{
try
{
var response = await SometimesLongMethod(request); // something needs to be done here, just not sure what
return response.Message;
}
catch(Exception e)
{
logger.Error(e, "Error occurred");
return string.Empty;
}
}
【问题讨论】:
-
Task.Delay+Task.WaitAny? -
那么如果您停止等待并让任务在后台继续执行,您的回报会怎样?或许返回
default(string)? -
我迷路了,如果任务还没有结束,你打算怎么回东西?
-
Task.Wait(TimeSpan)和Task.Wait(Int32)都允许您指定等待的最长时间。
标签: c# asp.net-core task wait