class Program { static void Main(string[] args) { Console.WriteLine("我是主线程,,线程ID:{0}", Thread.CurrentThread.ManagedThreadId); TestAsync(); Console.ReadLine(); } static async void TestAsync() { Console.WriteLine("挪用GetReturnResult()之前,线程ID:{0}。当前时间:{1}", Thread.CurrentThread.ManagedThreadId, DateTime.Now.ToString("yyyy-MM-dd hh:MM:ss")); var name = GetReturnResult(); Console.WriteLine("挪用GetReturnResult()之后,线程ID:{0}。当前时间:{1}", Thread.CurrentThread.ManagedThreadId, DateTime.Now.ToString("yyyy-MM-dd hh:MM:ss")); //异步回调内容 //在await以及之后的代码城市梗阻 Console.WriteLine("得到GetReturnResult()要领的功效:{0}。当前时间:{1}", await name, DateTime.Now.ToString("yyyy-MM-dd hh:MM:ss")); Console.WriteLine("await之后的内容。当前时间:{0}", DateTime.Now.ToString("yyyy-MM-dd hh:MM:ss")); //异步回调内容 } static async Task<string> GetReturnResult() { Console.WriteLine("执行Task.Run之前, 线程ID:{0}", Thread.CurrentThread.ManagedThreadId); return await Task.Run(() => { Thread.Sleep(5000); Console.WriteLine("GetReturnResult()要领里面线程ID: {0}", Thread.CurrentThread.ManagedThreadId); return "我是返回值"; }); } }
相关文章
- 通过一个示例形象地理解C# async await 非并行异步、并行异步、并行异步的并发量控制
- 通过一个示例形象地理解C# async await异步
- 【WePY小程序框架实战四】-使用async&await异步请求数据
- C# & WPF 随手小记之一 ——初探async await 实现多线程处理
- C# 同步 异步 回调 状态机 async await Demo
- Vue 中 Promise 的then方法异步使用及async/await 异步使用总结
- 现代JS中的流程控制:详解Callbacks 、Promises 、Async/Await
- 异步方案选型redux-saga 和 redux-thunk(async/await)
- Javascript中的async await
- js异步回调Async/Await与Promise区别 新学习使用Async/Await