카테고리 없음

Task await

보미아빠 2018. 7. 10. 15:18

    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();

        }

        

    }