В настоящее время я выполняю задачу, которая занимает много времени для выполнения. Итак, я выбрал threading. Но у меня есть цикл 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());
}
}
Внутри моего Еогеаспа Я бег некоторых методов, передавая значение ячеек в DataRow.
Какие проблемы у вас есть –
Как правило, вы хотите создать свои темы * вне * цикла, а затем дать каждому из них часть выполняемой работы. Как предполагает Мэтью, Parallel.ForEach предназначен для этого. – EricLaw
@ DanielA.White Я пытаюсь реализовать parallel.foreach, который выполняется намного быстрее, чем foreach, но не может реализовать его на datarows моего datatable. – Nagaraj