博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
异步超时后直接返回
阅读量:6815 次
发布时间:2019-06-26

本文共 1769 字,大约阅读时间需要 5 分钟。

应用场景

     异步同时请求多个地址,获得返回的信息并输出,排除时间响应太久的以免造成不必要的时间等待。

   

1   class Program 2     { 3         static void Main(string[] args) 4         { 5             TaskTest(); 6             Console.ReadLine(); 7         } 8  9         static async void ddd()10         {11             Stopwatch sw = new Stopwatch();12             sw.Start();13             List
urls = new List
() { "http://www.baidu.com", "http://www.360.com" };14 string a = await DownloadAllAsync(urls);15 16 Console.WriteLine(a);17 sw.Stop();18 Console.WriteLine(sw.ElapsedMilliseconds);19 Console.ReadLine();20 }21 static HttpClient httpClient = new HttpClient();22 static async Task
DownloadAllAsync(IEnumerable
urls)23 {24 25 var downloads = urls.Select(url => httpClient.GetStringAsync(url));26 Task
[] downloadTasks = downloads.ToArray();27 28 string[] pages = await Task.WhenAll(downloadTasks);29 30 return string.Concat(pages);31 }32 33 static void TaskTest()34 {35 var cts = new CancellationTokenSource(TimeSpan.FromMilliseconds(2000));36 Task
t1 = GetString("http://www.baidu.com");37 Task
t2 = GetString("http://www.360.com");38 Task
t3 = GetString("http://www.github.com");39 40 Task
[] arr = new Task
[] { t1, t2, t3 };41 Task.WaitAll(arr,2000);42 foreach (var dd in arr)43 Console.WriteLine(dd.Result.ToString());44 }45 46 static async Task
GetString(string str)47 {48 return await httpClient.GetStringAsync(str);49 50 }
View Code

 

 

转载于:https://www.cnblogs.com/cvol/p/5630781.html

你可能感兴趣的文章
js判断处理undefined类型的数据
查看>>
经验&&bug
查看>>
【leetcode】96. Unique Binary Search Trees
查看>>
【leetcode】552. Student Attendance Record II
查看>>
Hibernate 中upate,savaOrUpdate,merge的区别
查看>>
使用ELK构建分布式日志分析系统
查看>>
PHP遍历指定目录,并存储目录内所有文件属性信息
查看>>
VMware+centos7克隆多个虚拟机
查看>>
iOS第三方分享-ShareSDK
查看>>
[CodeForces954G]Castle Defense(二分答案+差分)
查看>>
webpack 配置多页面应用的一次尝试
查看>>
7 逻辑回归
查看>>
java里的基本知识
查看>>
行走在前端路上的一些想法
查看>>
hdu 5288 ZCC loves straight flush
查看>>
前端爬虫cheerio&&puppeteer
查看>>
Linux日常操作整理
查看>>
rem和em的用法
查看>>
【译】整理->20个让你效率更高的CSS代码技巧
查看>>
Prometheus学习系列(十一)之Hello World
查看>>