c#的for循环中如何实现多线程操作

1949idc 2年前 (2024-09-19) 阅读数 423 #编程语言

在C#中,可以使用Parallel.For或者Task来实现多线程操作。下面是两种方法的示例:

  1. 使用Parallel.For
using System;
using System.Threading.Tasks;

class Program
{
    static void Main(string[] args)
    {
        int start = 0;
        int end = 10;

        Parallel.For(start, end, i =>
        {
            Console.WriteLine($"Task {i} is running on thread {Task.CurrentId}");
            // 在这里执行你的任务
        });

        Console.ReadKey();
    }
}
  1. 使用Task
using System;
using System.Threading.Tasks;

class Program
{
    static async Task Main(string[] args)
    {
        int start = 0;
        int end = 10;

        Task[] tasks = new Task[end - start];

        for (int i = start; i < end; i++)
        {
            int index = i; // 避免闭包问题
            tasks[index] = Task.Run(() =>
            {
                Console.WriteLine($"Task {index} is running on thread {Task.CurrentId}");
                // 在这里执行你的任务
            });
        }

        await Task.WhenAll(tasks);

        Console.ReadKey();
    }
}

这两种方法都可以实现在for循环中进行多线程操作。Parallel.For更简洁,但是Task提供了更多的控制和灵活性。请根据你的需求选择合适的方法。

版权声明

本文内容由互联网用户自发贡献,该文观点仅代表作者本人
本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。

© 2010 首途云安 & 厦门硕顿信息技术有限公司 & 闽ICP备11016866号  增值电信业务经营许可证:B1-20203020 地址:福建厦门思明区嘉禾路297号1806
高新技术企业
软件产品证书
计算机软件著作权
ISO认证
国家3A企业