一、并行初试:
public static void test() { for (int i = 0; i调用:
static void Main(string[] args) { Stopwatch sw = new Stopwatch(); sw.Start();//串行执行:test();test1();//并行执行:17Parallel.Invoke(test, test1);19sw.Stop();21Console.WriteLine("共耗费时间:");23Console.WriteLine(sw.ElapsedMilliseconds / 1000+"s");}登录后复制
二、分区并行:
Parallel.ForEach(Partitioner.Create(1,20,5),(x,s)=>{ //并行代码中自定义串行,第三个参数表示item1到item2之间的范围 Console.WriteLine(x); for (int i = x.Item1; i三、异常捕获:AggregateException
int[] arry = new int[10001]; for (int i = 0; i { Console.WriteLine(x); if (sw.Elapsed.Seconds > 3) { throw new TimeoutException("操作超时"); } }); } catch (AggregateException ex) { foreach (var item in ex.InnerExceptions) { Console.WriteLine(item); } }登录后复制
四、指定并行调度:
ParallelOptions options = new ParallelOptions(); options.MaxDegreeOfParallelism = 1;//如果设置为1就类似于串行代码按顺序执行 options.MaxDegreeOfParallelism =Environment.ProcessorCount;//获取计算机上面的处理器数量 Parallel.For(1,10,options,(x) => { Console.WriteLine(x); });登录后复制
以上就是详细介绍.NET并行与多线程学习基础的详细内容,更多请关注【创想鸟】其它相关文章!
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至253000106@qq.com举报,一经查实,本站将立刻删除。
发布者:PHP中文网,转转请注明出处:https://www.chuangxiangniao.com/p/2444524.html