详细介绍.NET并行与多线程学习基础

一、并行初试:

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

(0)
上一篇 2025年3月3日 14:35:33
下一篇 2025年2月18日 01:05:26

AD推荐 黄金广告位招租... 更多推荐

发表回复

登录后才能评论