http://www.cnblogs.com/liqingwen/p/6079707.html
序
》该篇点睛之作介绍了 async & await 的基本用法及异步的控制流和一些其它的东西。
异步的解决方案。
目录
介绍
这里通过一个普通的 WPF 程序进行讲解:
只是一个文本框和一个按钮,左边文本框的内容为点击右键按钮时所产生的结果。
添加引用
demo 可能需要用到的部分 using 指令:
using System.IO; using System.Net; using System.Net.Http; using System.Threading;
先创建一个同步的 WPF
1.这是右边点击按钮的事件:
1 /// <summary> 2 /// 点击事件 3 /// </summary> 4 /// <param name="sender"></param> 5 /// <param name="e"></param> 6 private void btnSwitch_Click(object sender, RoutedEventArgs e) 7 { 8 //清除文本框所有内容 9 tbResult.Clear(); 10 11 //统计总数 12 SumSizes(); 13 }
2.我在 SumSizes 方法内包含几个方法:
① InitUrlInfoes:初始化 url 信息列表;
② GetUrlContents:获取网址内容;
③ DisplayResults:显示结果。
(1)SumSizes 方法:统计总数。
1 /// <summary> 2 /// 统计总数 3 /// </summary> 4 private void SumSizes() 5 { 6 //加载网址 7 var urls = InitUrlInfoes(); 8 9 //字节总数 10 var totalCount = 0; 11 foreach (var url in urls) 12 { 13 //返回一个 url 内容的字节数组 14 var contents = GetUrlContents(url); 15 16 //显示结果 17 DisplayResults(url, contents); 18 19 //更新总数 20 totalCount += contents.Length; 21 } 22 23 tbResult.Text += $"\r\n Total: {totalCount}, OK!"; 24 }