c#并行编程示例分享


当然,我可以为您提供一个C#并行编程的示例。在C#中,使用`System.Threading.Tasks`命名空间下的`Parallel`类和`Task`类是实现并行编程的常用方式。以下是一个简单的示例,演示了如何使用`Parallel.For`来并行执行一个循环:


using System;
using System.Threading.Tasks;

class Program
{
    static void Main(string[] args)
    {
        // 定义一个数组,用于存储并行计算的结果
        int[] results = new int[10];

        // 使用Parallel.For并行执行循环
        Parallel.For(0, 10, (i) =>
        {
            // 模拟耗时操作,比如计算平方
            int square = (int)Math.Pow(i, 2);

            // 将结果存储在数组中
            results[i] = square;

            // 打印当前线程的ID,以展示并行执行
            Console.WriteLine($"计算 {i} 的平方,结果:{square},线程ID:{Task.CurrentId}");
        });

        // 等待所有并行任务完成
        Console.WriteLine("所有计算完成。");

        // 输出结果,验证并行执行
        foreach (var result in results)
        {
            Console.WriteLine(result);
        }
    }
}

在这个示例中,`Parallel.For`用于并行执行一个从0到9的循环。循环体内的操作是计算当前索引的平方,并将结果存储在数组中。同时,通过打印当前线程的ID,可以观察到并行执行的效果。最后,通过遍历数组来输出所有计算结果,以验证并行执行的正确性。

请注意,由于并行执行的不确定性,每次运行时打印的线程ID和顺序可能会有所不同。此外,为了简化示例,这里没有处理并行执行中可能出现的线程安全问题(在这个简单的示例中,由于每个线程操作的是数组中的不同元素,因此不存在线程安全问题)。在实际应用中,如果并行操作涉及到共享资源的访问,需要采取适当的同步机制来确保线程安全。