Parallel类
1,用Parallel.For()方法循環
????class?Program{static?void?Main(string[]?args){//=============================第一種Parallel.For(0,//第一個參數:開始索引10,//第二個參數:最大索引(i,?parallelLoopState)?=>//第三個參數:循環委托方法{Console.WriteLine("索引:{0},任務id:{1},線程id:{2}",?i,?Task.CurrentId,?Thread.CurrentThread.ManagedThreadId);});//=============================第二種Parallel.For<string>(0,//第一個參數:開始索引10,//第二個參數:最大索引//第三個參數:線程開始的方法()?=>?{?Console.WriteLine("線程開啟:{0}",?Thread.CurrentThread.ManagedThreadId);?return?"aa";?},//第四個參數:循環委托方法(i,?pls,?str1)?=>?{?Console.WriteLine("索引:{0},線程id:{1},任務id:{2}",?i,?Thread.CurrentThread.ManagedThreadId,Task.CurrentId);?return?"bb";?},//第五個參數:線程結束的方法str?=>?Console.WriteLine("線程結束:{0}",?Thread.CurrentThread.ManagedThreadId));Console.ReadLine();}}?
2,用Parallel.ForEach()方法循環
????class?Program{static?void?Main(string[]?args){string[]?data?=?new?string[]?{?"1",?"2",?"3",?"4"?};Parallel.ForEach(data,?r?=>?{Console.WriteLine(r);});Parallel.ForEach<string>(data,?(r,?p,?l)?=>{//r:遍歷數組的值//l:數組的索引Console.WriteLine(r?+?","?+?l);});Console.ReadKey();}}?
3,用Parallel.ForEach()方法并行調用多個方法
????class?Program{static?void?Main(string[]?args){Parallel.Invoke(Foo,?Bar);Console.ReadLine();}private?static?void?Foo(){Console.WriteLine("Foo;?task:{0};threadis:{1}",?Task.CurrentId,?Thread.CurrentThread.ManagedThreadId);}private?static?void?Bar(){Console.WriteLine("Bar;?task:{0};threadis:{1}",?Task.CurrentId,?Thread.CurrentThread.ManagedThreadId);}}?
轉載于:https://blog.51cto.com/962410314/1608592
總結
- 上一篇: linux下源码安装官方最新版Pytho
- 下一篇: XML的序列化和反序列化 详细介绍