Task await
class Program
{
static void Main(string[] args)
{
List<Task<string>> lists = new List<Task<string>>();
Program p = new Program();
lists.Add(p.Run2());
lists.Add(p.Run());
foreach (var a in lists)
a.Wait(); // 모두 기다리고 출력
foreach (var a in lists)
Console.WriteLine(a.Result); // 5초 응답
}
async Task<string> Run()
{
var a = Task.Delay(1000);
var b = Task.Delay(1000);
var c = Task.Delay(1000);
var d = Task.Delay(1000);
var e = Task.Delay(1000);
await a;
await b;
await c;
await d;
await e;
Thread.Sleep(3000); // 전체 처리시간 4초
return DateTime.Now.ToString();
}
async Task<string> Run2()
{
await Task.Delay(1000);
await Task.Delay(1000);
await Task.Delay(1000);
await Task.Delay(1000);
await Task.Delay(1000); // 전체 처리시간 5초
return DateTime.Now.ToString();
}
}