await和async的使用方法

来源:互联网 发布:淘宝搞笑收货人 编辑:程序博客网 时间:2024/06/05 01:52
#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

0 0
原创粉丝点击