标签:stat console class 初步了解 eth col lin async res
希望在编程上有些许提高所以 最近连续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<int> HaveReturnAsync() 主线程不会等待会直接输出//part_002 ,但在HaveReturnAsync() 方法体内 会等待 Method1 方法执行完
再输出 Console.WriteLine("ccc"); //part_003,看到这里大家会对 await 有一定了解了吧,从整体来看 主线程 调用HaveReturnAsync 是异步,在HaveReturnAsync() 方法体内 调用 Method1 用await 使其会等待Method1 执行完后
,再执行下面代码是同步。希望上面描述对大家对异步编程有初步了解,如有疑问可以一起讨论。
标签:stat console class 初步了解 eth col lin async res
原文地址:http://www.cnblogs.com/liyanbofly/p/7919677.html