油炸小可爱|C# 中 aysnc 异步方法中使用await 和同步方法的区别
今天 , 晴 , 多云 , 天气闷热 , 在外边站一会就能把衣服湿透的那种热 , 中午出去了 , 热了一身汗回来了 。 还是在空调房打打字比较舒服 。 废话不说了 , 讲正题:
之前知道异步和同步的大概区别 , 异步呢就是方法执行过程不影响下边代码执行 。 同步则是执行完后才去执行下边的代码 。
但是一到异步方法使用 await 来执行, 就和同步方法搞糊涂了 。 就不明白为啥还要去用异步了 。
今天就举几个例子来说明白一下
先看同步的写法 , 这个例子使用 同步方法访问网址 。
class Program{static void Main(string[] args){Test test = new Test();test.DoTest();Console.ReadKey();}}class Test{Stopwatch sw = new Stopwatch();public void DoTest(){sw.Start();int t1= GetBaidu();int t2 = GetQQ();WriteA();WriteB();Console.WriteLine($"{t1}:{t2}用时{sw.Elapsed.TotalMilliseconds}");}private void WriteA(){Console.WriteLine("A");}private void WriteB(){Console.WriteLine("B");}private int GetBaidu(){WebClient wc1 = new WebClient();Console.WriteLine("Baidu开始!"+DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss fff"));wc1.DownloadString(new Uri(""));Console.WriteLine("Baidu完成!" + DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss fff"));return 1;}private int GetQQ(){WebClient wc1 = new WebClient();Console.WriteLine("qq开始!" + DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss fff"));wc1.DownloadString(new Uri(""));Console.WriteLine("qq完成!" + DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss fff"));return 2;}}看先后结果及总共处理时间
再看使用异步的方法来处理
class Program{static void Main(string[] args){Test test = new Test();test.DoTest();Console.ReadKey();}}class Test{Stopwatch sw = new Stopwatch();public void DoTest(){sw.Start();Task看先后结果及总共处理时间结果如下
可以看出 , 异步的方式 , 在方法处理时并不等待 , 所以处理的时间相应会少一些 。
【油炸小可爱|C# 中 aysnc 异步方法中使用await 和同步方法的区别】至于await,是为了让异步方法中调用异步方法能够等待他返回结果 , 然后继续往上处理方法内部下边的代码才用到的 。
推荐阅读
- 油炸小可爱|秒批、曲线、送龙腾!返现3%的华为信用卡来了
- 油炸小可爱|有些吓人!SSD温度超85度,用它之后骤降25度,这下清凉了
- 江水寒|《琉璃》昊辰VS刘学义,粉丝大惊,想不到你是这样一个小可爱
- 油炸小可爱|电动车逮虾户?雅迪冠能T5领衔电动车续航新方案
- 油炸小可爱|黑客大神总结:全端口蜜罐的部署过程与数据分析
- 小呀么小可爱|爆笑GIF:妹子们可得抓紧啊这么大的风别被吹跑了!
- 口感|第1步不是用油炸!多做1步,花菜脆爽不油腻,更好吃做干煸花菜
- 穿搭|T-ara朴孝敏私服穿搭,黑色小皮裙大秀细腿,女神秒变小可爱
- 油炸小可爱|抱歉了,华为P40Pro,你真没我想象中那么优秀
- 小黑裙:趁着夏季还在,小可爱们一起来学白鹿穿小黑裙吧
