C# async、await并发编程实例
class Program { /// <summary> /// https://docs.microsoft.com/zh-cn/dotnet/csharp/programming-guide/concepts/async/ /// https://docs.microsoft.com/zh-cn/dotnet/csharp/programming-guide/concepts/async/how-to-make-multiple-web-requests-in-parallel-by-using-async-and-await /// </summary> /// <param name="args"></param> /// <returns></returns> static async Task Main(string[] args) { Console.WriteLine("开始任务,线程Id:" + Thread.CurrentThread.ManagedThreadId); Task<int> test1 = Test1Async(); Task<int> test2 = Test2Async(); Console.WriteLine("其它并发任务,线程Id:" + Thread.CurrentThread.ManagedThreadId); #region 将这些代码注释,就明白并发效果 int test1Result = await test1; Console.WriteLine("任务1结果=" + test1Result); int test2Result = await test2; Console.WriteLine("任务2结果=" + test2Result); #endregion Console.WriteLine("任务全部完成,线程Id:" + Thread.CurrentThread.ManagedThreadId); } private static async Task<int> Test1Async() { Console.WriteLine("进入任务1...线程Id:" + Thread.CurrentThread.ManagedThreadId); await Task.Delay(3000); Console.WriteLine("任务1完成1...线程Id:" + Thread.CurrentThread.ManagedThreadId); await Task.Delay(3000); Console.WriteLine("任务1完成2...线程Id:" + Thread.CurrentThread.ManagedThreadId); return 1; } private static async Task<int> Test2Async() { Console.WriteLine("进入任务2...线程Id:" + Thread.CurrentThread.ManagedThreadId); await Task.Delay(3000); Console.WriteLine("任务2完成1...线程Id:" + Thread.CurrentThread.ManagedThreadId); await Task.Delay(3000); Console.WriteLine("任务2完成2...线程Id:" + Thread.CurrentThread.ManagedThreadId); return 2; } }
异步编程为什么能够提高并发数
https://www.cnblogs.com/dudu/p/3762672.html
https://www.cnblogs.com/cuiyansong/p/7424997.html
https://www.cnblogs.com/jesse2013/p/asynchronous-programming-in-dotnet.html

浙公网安备 33010602011771号