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

運行結果async

線程開始執行
線程開始執行
線程等待後執行:3
線程等待後執行:4
線程等待執行是否繼續 結果2019/7/7 0:00:00
線程開始執行測試

相關文章
相關標籤/搜索