首页 > 代码库 > Parallel类
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); } }
本文出自 “程序猿的家--Hunter” 博客,请务必保留此出处http://962410314.blog.51cto.com/7563109/1608592
Parallel类
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。