最近正在尝试使用 c# 进行异步和等待。这是我的代码
private async void button1_Click( object sender, EventArgs e )
{
textBox1.Text = string.Empty;
var client = new WebClient();
var sw = Stopwatch.StartNew();
var downloadStringTask = client.DownloadStringTaskAsync("http://www.google.com");
textBox1.Text += "Downloading string async "+sw.ElapsedMilliseconds;
sw.Restart();
await downloadStringTask;
textBox1.Text += Environment.NewLine + "Downloaded "+sw.ElapsedMilliseconds;
sw.Stop();
}
这是我在 textbox1.text 中得到的输出
Downloading string async 5698
Downloaded 666
这意味着只调用DownloadStringTaskAsync()
正在5.6 Seconds
执行的实际下载正在执行的地方<1 second
。当使用此方法的原因是为了节省线程资源时。
如果这是真的,是否有任何实际情况应该使用 WebClient 类的这种方法?或者我只是在用完全不正确的术语思考?