每个循环都有多个线程

本文关键字:线程 循环 | 更新日期: 2023-09-27 18:13:52

我目前正在实现一个任务,它的执行需要消耗大量的时间。所以,我选择了穿线。但是我有一个foreach循环在我的线程中,我想创建多个线程。我担心的是这样做是否合适。

我的代码类似如下:

    Thread th= new Thread(new ThreadStart(ThreadProcedure));
    th.IsBackground = true;
    th.Start();
   public void ThreadProcedure()
   {
    //I have datatable here
    foreach(DataRow in mytable.rows)
    {
    //here I want to create a multiple threads, say like
    //Thread1 on which I want to run method1
     Method1(dr["Column1"].ToString());
    //Thread2 on which I want to run method2
     Method2(dr["Column2"].ToString());
    //Thread3 on which I want to run method3
       Method3(dr["Column3"].ToString());
    }
  }

在我的foreach中,我通过传递datarow中的单元格值来运行一些方法。

每个循环都有多个线程

假设您的线程不相关,最简单的方法可能是使用Parallel。Foreach

如果相关,并且您需要指定的wait行为,则应该考虑使用任务并行库

EDIT:如果你想在循环中并行调用方法,你可以使用parallel。调用,但似乎更容易在父行集合上这样做(除非您有很少的行或行依赖于彼此的操作)