您好,欢迎来到三六零分类信息网!老站,搜索引擎当天收录,欢迎发信息

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

2025/6/30 20:34:31发布9次查看
一、并行初试:
public static void test() { for (int i = 0; i < 10000; i++) { console.writeline(i); } } public static void test1() { for (int i = 0; i < 10000; i++) { console.writeline(i + "aaaaaaaaaaaaaaa"); } }
调用:
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 < x.item2; i++) { if (i == 10) break; console.writeline(i); } s.break();// 非常类似普通for循环中的break if (s.shouldexitcurrentiteration) return; });
三、异常捕获:aggregateexception
int[] arry = new int[10001]; for (int i = 0; i < 10000; i++) { arry[i] = i; } try { parallel.foreach(arry, (x, s) => { 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并行与多线程学习基础的详细内容。
该用户其它信息

VIP推荐

免费发布信息,免费发布B2B信息网站平台 - 三六零分类信息网 沪ICP备09012988号-2
企业名录 Product