首页 > 代码库 > 并行活动
并行活动
今天在工作中用到了并行,于是就总结了一下关于并行的方法使用,也为自己做个备忘。
命名空间:System.Threading.Tasks;
重要的类:Parallel;
重要的方法:3个;[其他都是重载]
一.Invoke方法:任务已生成;
用法一:
注意:1.都是指单独的任务或活动;【不要相互调用】
2.需要事先生成这些任务或活动,同时并发执行这些任务;
3.任务或活动的方法是无参无返回值的;
1 class Program 2 { 3 static void Main(string[] args) 4 { 5 System.Threading.Tasks.Parallel.Invoke(Program.Fly,Program.Run,Program.Wolk); 6 Console.ReadKey(); 7 } 8 static void Fly() 9 {10 Console.WriteLine("小鸟在飞");11 }12 static void Run() 13 {14 Console.WriteLine("猪在跑");15 }16 static void Wolk() 17 {18 Console.WriteLine("你在走路");19 }20 }
用法二:
1 class Program 2 { 3 static void Main(string[] args) 4 { 5 6 Action[] action = { Program.Fly, Program.Run, Program.Wolk }; 7 System.Threading.Tasks.Parallel.Invoke(action); 8 Console.ReadKey(); 9 }10 static void Fly()11 {12 Console.WriteLine("小鸟在飞");13 }14 static void Run() 15 {16 Console.WriteLine("猪在跑");17 }18 static void Wolk() 19 {20 Console.WriteLine("你在走路");21 }22 }
二.for方法:根据数据源生成任务或活动
1 class Program 2 { 3 static void Main(string[] args) 4 { 5 System.Threading.Tasks.Parallel.For(1,10, Swim); 6 7 Console.ReadKey(); 8 } 9 static void Swim(int n)10 {11 Console.WriteLine("第{0}个活动执行",n);12 }13 }
三.foreach方法:根据数据源生成任务或活动
1 class Program 2 { 3 static void Main(string[] args) 4 { 5 List<Animal> animals = new List<Animal>(); 6 for (int i = 0; i < 2; i++) 7 { 8 Animal animal = new Animal(); 9 animal.Name = "小黑" + i;10 animal.Age = i;11 animals.Add(animal);12 }13 14 System.Threading.Tasks.Parallel.ForEach<Animal>(animals, Swim);15 16 Console.ReadKey();17 }18 static void Swim(Animal animal)19 {20 21 Console.WriteLine("{0}在游泳,它{1}岁了。", animal.Name, animal.Age);22 }23 }24 public class Animal25 {26 public string Name { get; set; }27 public int Age { get; set; }28 29 }
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。