.NET中的async和await关键字使用及Task异步调用实例
其实早在.NET4.5的时候M$就在.NET中引入了async和await关键字(VB为Async和Await)来简化异步调用的编程模式。我也早就体验过了,现在写一篇日志来记录一下顺便凑日志数量(以后面试之前可以用这个“复习”一下)。
(一)传统的异步调用
在比较“古老”的C#程序中经常可以看到IAsyncResult、BeginInvoke之类的异步调用“踪迹”。先来简单的复习一下吧。
假如我们有一个方法生成字符串,而生成这个字符串需要10秒中的时间:
publicclassWasteTimeObject { publicstringGetSlowString(intbegin,intlength) { StringBuildersb=newStringBuilder();
for(inti=begin;i<begin+length;i++) { sb.Append(WasteTime(i)+""); }
returnsb.ToString(); }
privatestringWasteTime(intcurrent) { System.Threading.Thread.Sleep(1000); returncurrent.ToString(); } }