大家好,又见面了,我是你们的朋友全栈君。
C#并行计算 Parallel.ForEach
-
-
/// <summary> /// 获取订单链接 /// </summary> public void GetOrders() { GetToken(); HttpHelper http = new HttpHelper(); HttpItem item = new HttpItem(); item.URL = "https://merchant-api.jet.com/api/orders/{status}".Replace("{status}", "acknowledged"); item.Method = "get"; item.ResultCookieType = ResultCookieType.CookieCollection; item.ContentType = "application/json"; item.Header.Add("Authorization", string.Format("bearer {0}", Token.id_token)); item.Header.Add("Accept-Encoding", "gzip, deflate"); item.PostEncoding = System.Text.Encoding.UTF8; item.UserAgent = "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.1; Trident/4.0; EmbeddedWB 14.52 from: http://www.bsalsa.com/ EmbeddedWB 14.52; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; InfoPath.2; .NET4.0C; .NET4.0E; Tablet PC 2.0; TCO_20150304085044)"; item.KeepAlive = false; item.Header.Add("Cache-Control", "no-cache"); HttpResult result = http.GetHtml(item); OrdersUrl UrlInfo=result.Html.Str2Entity<OrdersUrl>(); //创建一个订单任务并发集合 ConcurrentQueue<OrderInfo> Queue = new ConcurrentQueue<OrderInfo>(); //并行计算 数据分区 均匀分布到各个内核 Parallel.ForEach(Partitioner.Create<string>(UrlInfo.Urls,true),url=> { OrderInfo Order = GetOrderDetail(url); Queue.Enqueue(Order); }); Parallel.ForEach(Partitioner.Create<OrderInfo>(Queue.ToArray(),true),order=> { SaveOrder(order); }); }
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。
发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/161792.html原文链接:https://javaforall.net
