最近正在嘗試異步並等待使用c#。這是我的代碼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();
}
這個輸出IM在textbox1.text
Downloading string async 5698
Downloaded 666
得到這意味着僅調用DownloadStringTaskAsync()
正在圍繞5.6 Seconds
執行,其中作爲實際的下載正在<1 second
。當使用此方法的原因是保存線程資源。
如果這是真的,是否有任何實際的情況下,這種WebClient類的方法應該被使用?或者我只是想完全不正確的條款?
嗯,只測量一次可能會導致誤導性的數字 – Patrick
@Patrick我願意在我的網絡應用程序中使用它,其中每次都創建控制器 –
這不僅僅是下載數據所花費的時間,還包括時間解決第一次下載所需的dns和時間。 我建議你應該嘗試再打一次電話。它將產生與此時不同的結果,dns已經解析並緩存,並且頁面也被緩存。 –