VB.net 2010 视频教程 VB.net 2010 视频教程 VB.net 2010 视频教程
当前位置:
首页 > 编程开发 > c#教程 >
  • C#教程之C#异步WaitAll的使用

  • 2019-02-09 10:17 来源:未知

编写界面如图:

复制代码
private async void button1_Click(object sender, EventArgs e)
        {
            #region 单个执行的异步,效率慢
            HttpClient wc = new HttpClient();
            string s1 = await wc.GetStringAsync(textBox1.Text);
            label1.Text = s1.Length.ToString();
            string s2 = await wc.GetStringAsync(textBox2.Text);
            label2.Text = s2.Length.ToString();
            string s3 = await wc.GetStringAsync(textBox3.Text);
            label3.Text = s3.Length.ToString();
            #endregion

            #region 并发全部完成的异步更快
            HttpClient hc = new HttpClient();
            var task1 = hc.GetStringAsync(textBox1.Text);
            var task2 = hc.GetStringAsync(textBox2.Text);
            var task3 = hc.GetStringAsync(textBox3.Text);
            Task.WaitAll(task1, task2, task3);
            label1.Text = task1.Result.Length.ToString();
            label2.Text = task2.Result.Length.ToString();
            label3.Text = task3.Result.Length.ToString();
            #endregion

        }
复制代码

使用异步方法不一定都是 await,只有需要按序执行采用 await。上面的程序改成并发下载, Task.WaitAll 是等待所有任务完成。

 

相关教程
关于我们--广告服务--免责声明--本站帮助-友情链接--版权声明--联系我们       黑ICP备07002182号