C#异步编程
异步模型概述
异步编程的核心是 Task 和 Task 对象,这两个对象对异步操作建模。 在大多数情况下模型十分简单:
•对于 I/O 绑定代码,等待一个在 async 方法中返回 Task 或 Task 的操作。
•对于 CPU 绑定代码,等待一个使用 Task.Run 方法在后台线程启动的操作。
await 关键字有这奇妙的作用。 它控制执行 await 的方法的调用方,且它最终允许 UI 具有响应性或服务具有灵活性。 虽然有方法可处理 async 和 await 以外的异步代码,但本文重点介绍语言级构造。
标题I/O 绑定示例:从 Web 服务下载数据
你可能需要在按下按钮时从 Web 服务下载某些数据,但不希望阻止 UI 线程。 可执行如下操作来实现:
private readonly HttpClient _httpClient = new HttpClient();
downloadButton.Clicked