#region 异步返回文件流(提高应用程序的吞吐能力) public async Task<ActionResult> AwaitFile() { var responseHtml = await GetResponseStream("http://static.xuexiba.com/uploadfile/UserInfo/Avatar/201311/1302844759237319155175.jpg"); return File(responseHtml, "image/jpeg"); } private async Task<Stream> GetResponseStream(string url) { return await GetResponseContentAsync(url); } private async Task<Stream> GetResponseContentAsync(string url) { var httpClient = new System.Net.Http.HttpClient(); var response = await httpClient.GetAsync(url); if (response.StatusCode == System.Net.HttpStatusCode.OK) { return await response.Content.ReadAsStreamAsync(); } else { return null;//error } }#endregion
#region 异步返回文本(提高应用程序的吞吐能力) public async Task<ActionResult> AwaitHtml() { var responseHtml = await GetResponseHtml("http://www.sina.com"); return Content(responseHtml); } private async Task<string> GetResponseHtml(string url) { return await GetResponseStringAsync(url); } private async Task<string> GetResponseStringAsync(string url) { var httpClient = new System.Net.Http.HttpClient(); var response = await httpClient.GetAsync(url); if (response.StatusCode == System.Net.HttpStatusCode.OK) { return await response.Content.ReadAsStringAsync();//加await的意思是说,主UI等待它执行完成后,再继续执行,这种就叫作并行! } else { return null;//error } } #endregion
await和async的使用方法
最新推荐文章于 2024-08-17 11:48:08 发布