多线程系列二

await  async

    class Program
    {
        static void Main(string[] args)
        {
            DisplayCurrentInfo().Wait();     
        }

        static async Task DisplayCurrentInfo()
        {
            Console.WriteLine("中国");
            await WaitAndApologize();
            Console.WriteLine("执行任务");
        }
        static async Task WaitAndApologize()
        {
            Console.WriteLine("开始");
            await Task.Delay(2000);
            await Task.Run(()=>
            {
                Console.WriteLine($"{Thread.CurrentThread.ManagedThreadId}");
            });
            Console.WriteLine("对不起久等了");
        }
       
    }

 异步不会阻塞主线程执行

    class Program
    {
        static void Main(string[] args)
        {
            Console.WriteLine("aa");
            Async();
            Console.WriteLine("bb");
            Console.Read();
        }
        public static async void Async()
        {
            Console.WriteLine($"cc");
            await Task.Run(() =>
            {
                Thread.Sleep(1500);
                Console.WriteLine($"dd");
            });
            Console.WriteLine($"ee");
        }

    }

 

posted @ 2020-03-18 18:14  bradleydan  阅读(62)  评论(0)    收藏  举报