async/await理解

async/await 异步关键字

    /// <summary>
        /// 无参无反
        /// </summary>
        /// <returns></returns>
        public async static Task ShowAsync()
        {

            await Task.Run(() =>
             {
                 Thread.Sleep(2000);
                 Console.WriteLine($"线程等待后执行:{Thread.CurrentThread.ManagedThreadId}");
             });
        }
 /// <summary>
        /// 无参有反返回一个时间
        /// </summary>
        /// <returns></returns>
        public static async Task<DateTime> TaskAsync()
        {

            var data = await Task.Run(() =>
              {
                  Thread.Sleep(2000);
                  Console.WriteLine($"线程等待后执行:{Thread.CurrentThread.ManagedThreadId}");
                  return DateTime.Now;
              });
            return data;
        }
//测试调用 
  static void Main(string[] args)
        {

            //Test.Show();
            Console.WriteLine("线程开始执行");
            Test.ShowAsync();
            Console.WriteLine("线程开始执行");
            var data = Test.TaskAsync();
            data.Wait();
            Console.WriteLine($"线程等待执行是否继续 结果{data.Result.Date}");
            Console.WriteLine("线程开始执行");
            Console.Read();
        }

运行结果

线程开始执行
线程开始执行
线程等待后执行:3
线程等待后执行:4
线程等待执行是否继续 结果2019/7/7 0:00:00
线程开始执行

原文地址:https://www.cnblogs.com/zxp6/p/11148014.html