zoukankan      html  css  js  c++  java
  • C# 并行运算

    今天被派到其他组做临时支援,看到了Parallel。百度了下原来是做并行计算的。支援完毕后,自己了解了下,感觉C#提供的并行运算在使用形式上跟JQuery的$.each()有点类似。
    Parallel.For(迭代系列的第一个参数,迭代系列最后一个索引值+1,在每个迭代参数中执行的委托)

    1 static void Main(string[] args)
    2 {
    3     Parallel.For(0, 15, i => Console.WriteLine("第{0}个i", i));
    4 
    5     Console.ReadKey();
    6 }

     1 static void Main(string[] args)
     2 {
     3     int arraySquare = 20;
     4     int[] array = new int[arraySquare];
     5     Parallel.For(0, arraySquare, i => array[i] = i * i);
     6     foreach (int item in array)
     7     {
     8         Console.WriteLine(item);
     9     }
    10 
    11     Console.ReadKey();
    12 }

    ----------------------------------------------------

    Parallel.ForEach<迭代运算的每个元素数据类型>(要进行迭代运算的数据集合,要应用到集合中每个元素的Lambda表达式/委托/方法)

    1 static void Main(string[] args)
    2 {
    3     int[] arrNew = { 1, 2, 3, 4, 5, 6, 7 };
    4 
    5     Parallel.ForEach(arrNew, i => { Console.WriteLine(i * i); });
    6 
    7     Console.ReadKey();
    8 }

    -----------------------------------------------------------

    无意中犯了一个错误,不过歪打正着,正好证明Parallel是多核执行的

     1 static void Main(string[] args)
     2 {
     3     int[] arrNew = { 1, 2, 3, 4, 5, 6, 7 };
     4     Parallel.ForEach(arrNew, i => { GetArrayResult(arrNew); });
     5     Console.ReadKey();
     6 }
     7 public static void GetArrayResult(int[] array)
     8 {
     9     for (int i = 0; i < array.Length; i++)
    10     {
    11         Console.WriteLine(string.Format("第{0}个索引数值是{1}", i, array[i]));
    12     }
    13 
    14 }

  • 相关阅读:
    后端解决跨域
    常用JS验证函数
    Tomcat:IOException while loading persisted sessions: java.io.EOFException解决手记
    js常用小功能示例
    软件开发五个阶段
    子类异常、访问权限与父类的关系
    什么时候需要使用try-catch
    java中的容器组件和非容器组件
    main方法必须是public static void main(String[] args)
    创建线程的方法
  • 原文地址:https://www.cnblogs.com/sunice/p/6486498.html
Copyright © 2011-2022 走看看