c# async/await编程
今天整理了一下c#异步编程的资料。
public partial class MainWindow : Window
{
private async void StartButton_Click(object sender, RoutedEventArgs e)
{
resultsTextBox.Text += "begin to invoke AccessTheWebAsync...\r\n";
//方式1:调用和await分开
Task<int> getLengthTask = AccessTheWebAsync();
resultsTextBox.Text += "do other works ...\r\n";
int contentLength = await getLengthTask;
//方式2:调用和await不分开
//int contentLength = await AccessTheWebAsync();
resultsTextBox.Text += String.Format("Length of the downloaded string: {0}.\r\n", contentLength);
}
async Task<int> AccessTheWebAsync()
{
resultsTextBox.Text += "AccessTheWebAsync...\r\n";
HttpClient client = new HttpClient();
Task<string> getStringTask = client.GetStringAsync("https://www.baidu.com");
DoIndependentWork();
//等待返回, 向上层交还控制权
string urlContents = await getStringTask;
resultsTextBox.Text += "GetStringAsync return ...\r\n";
//返回结果
return urlContents.Length;
}
void DoIndependentWork()
{
resultsTextBox.Text += "Working . . . . . . .\r\n";
}
}
运行效果
总结
以上是生活随笔为你收集整理的c# async/await编程的全部内容,希望文章能够帮你解决所遇到的问题。
- 上一篇: MongoDB集群分片部署指南
- 下一篇: 在C#中实现SQLite的事务处理