油炸小可爱|中 aysnc 异步方法中使用await 和同步方法的区别,C#

今天 , 晴 , 多云 , 天气闷热 , 在外边站一会就能把衣服湿透的那种热 , 中午出去了 , 热了一身汗回来了 。 还是在空调房打打字比较舒服 。 废话不说了 , 讲正题:
之前知道异步和同步的大概区别 , 异步呢就是方法执行过程不影响下边代码执行 。 同步则是执行完后才去执行下边的代码 。
但是一到异步方法使用await来执行 , 就和同步方法搞糊涂了 。 就不明白为啥还要去用异步了 。
今天就举几个例子来说明白一下
先看同步的写法 , 这个例子使用同步方法访问网址 。
classProgram{staticvoidMain(string[]args){Testtest=newTest();test.DoTest();Console.ReadKey();}}classTest{Stopwatchsw=newStopwatch();publicvoidDoTest(){sw.Start();intt1=GetBaidu();intt2=GetQQ();WriteA();WriteB();Console.WriteLine($"{t1}:{t2}用时{sw.Elapsed.TotalMilliseconds}");}privatevoidWriteA(){Console.WriteLine("A");}privatevoidWriteB(){Console.WriteLine("B");}privateintGetBaidu(){WebClientwc1=newWebClient();Console.WriteLine("Baidu开始!"+DateTime.Now.ToString("yyyy-MM-ddHH:mm:ssfff"));wc1.DownloadString(newUri(""));Console.WriteLine("Baidu完成!"+DateTime.Now.ToString("yyyy-MM-ddHH:mm:ssfff"));return1;}privateintGetQQ(){WebClientwc1=newWebClient();Console.WriteLine("qq开始!"+DateTime.Now.ToString("yyyy-MM-ddHH:mm:ssfff"));wc1.DownloadString(newUri(""));Console.WriteLine("qq完成!"+DateTime.Now.ToString("yyyy-MM-ddHH:mm:ssfff"));return2;}}看先后结果及总共处理时间
classProgram{staticvoidMain(string[]args){Testtest=newTest();test.DoTest();Console.ReadKey();}}classTest{Stopwatchsw=newStopwatch();publicvoidDoTest(){sw.Start();Taskt1=GetBaiduAsync();Taskt2=GetQQAsync();WriteA();WriteB();Console.WriteLine($"{t1.Result}:{t2.Result}用时{sw.Elapsed.TotalMilliseconds}");}privatevoidWriteA(){Console.WriteLine("A");}privatevoidWriteB(){Console.WriteLine("B");}privateasyncTaskGetBaiduAsync(){WebClientwc2=newWebClient();Console.WriteLine("Baidu开始!"+DateTime.Now.ToString("yyyy-MM-ddHH:mm:ssfff"));awaitwc2.DownloadStringTaskAsync(newUri(""));Console.WriteLine("Baidu完成!"+DateTime.Now.ToString("yyyy-MM-ddHH:mm:ssfff"));return1;}privateasyncTaskGetQQAsync(){WebClientwc2=newWebClient();Console.WriteLine("qq开始!"+DateTime.Now.ToString("yyyy-MM-ddHH:mm:ssfff"));awaitwc2.DownloadStringTaskAsync(newUri(""));Console.WriteLine("qq完成!"+DateTime.Now.ToString("yyyy-MM-ddHH:mm:ssfff"));return2;}}看先后结果及总共处理时间结果如下
【油炸小可爱|中 aysnc 异步方法中使用await 和同步方法的区别,C#】至于await,是为了让异步方法中调用异步方法能够等待他返回结果 , 然后继续往上处理方法内部下边的代码才用到的 。


    推荐阅读