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
线程开始执行