turn void mce sleep pre log images 之间 async
希望在编程上有些许提高所以 最近连续2篇博客都在说明多线程和异步编程的使用,异步和多线程之间区别请自行百度,因为理解不是特别透彻就不在叙述以免误导大家,这里写下新研究整理 task 和 await 的异步编程使用
调用子方法和耗时方法如下
- /// <summary>
- /// 有返回值异步方法
- /// </summary>
- /// <returns></returns>
- static async Task<int> HaveReturnAsync()
- {
- await Task.Run(() => Method1("HaveReturnAsync")); // part_001
- //Task t1 = new Task(() => sss());
- //t1.Start();
- Console.WriteLine("ccc"); //part_003
- return 10;
- }
- /// <summary>
- /// 耗时输出方法
- /// </summary>
- /// <param name="name"></param>
- static void Method1(string name)
- {
- string temp1 = ""+name+"_1";
- string temp2 = "" + name + "_2";
- Console.WriteLine(temp1);
- Thread.Sleep(500);
- Console.WriteLine(temp2);
- }
调用主方法
- //无返回值
- //Async2();
- //Console.WriteLine("Async2-Bakc");
- // 有返回值
- var ll = HaveReturnAsync();
- Console.WriteLine("aaa"); //part_002
- Console.WriteLine("llValue:" + ll.Result); // part_003
- Console.ReadKey();
执行结果
从执行结果可以看出在执行HaveReturnAsync:async Task
再输出 Console.WriteLine("ccc"); //part_003,看到这里大家会对 await 有一定了解了吧,从整体来看 主线程 调用HaveReturnAsync 是异步,在HaveReturnAsync() 方法体内 调用 Method1 用await 使其会等待Method1 执行完后
,再执行下面代码是同步。希望上面描述对大家对异步编程有初步了解,如有疑问可以一起讨论。
Async await 异步编程说明
turn void mce sleep pre log images 之间 async
原文:http://www.cnblogs.com/liyanbofly/p/7919677.html
来源: http://www.bubuko.com/infodetail-2410987.html