csharp Task.WhenAllを利用している场合のタイムアウト处理の书き方(Task.WhenAll,Task.WhenAny,Task.Delay)
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了csharp Task.WhenAllを利用している场合のタイムアウト处理の书き方(Task.WhenAll,Task.WhenAny,Task.Delay)相关的知识,希望对你有一定的参考价值。
var t1Result = 0;
var t2Result = 0;
var t1 = Task.Run(() =>
{
Thread.Sleep(TimeSpan.FromSeconds(1));
Interlocked.Increment(ref t1Result);
});
var t2 = Task.Run(() =>
{
Thread.Sleep(TimeSpan.FromSeconds(3));
Interlocked.Increment(ref t2Result);
});
var tasks = Task.WhenAll(t1, t2);
var timeout = Task.Delay(TimeSpan.FromSeconds(2));
// 処理が完了するか、タイムアウトするまで待つ
await Task.WhenAny(tasks, timeout);
if (t1Result == 1 && t2Result == 1)
{
"処理完了".Dump();
}
else
{
"タイムアウト".Dump();
}
以上是关于csharp Task.WhenAllを利用している场合のタイムアウト处理の书き方(Task.WhenAll,Task.WhenAny,Task.Delay)的主要内容,如果未能解决你的问题,请参考以下文章