每个循环都有多个线程
本文关键字:线程 循环 | 更新日期: 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。调用,但似乎更容易在父行集合上这样做(除非您有很少的行或行依赖于彼此的操作)