我目前正在執行一個耗費大量時間執行的任務。因此,我選擇了線程。但我在我想創建多個線程的線程中有一個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我通過將單元格的值在數據行上運行的一些方法。
你有什麼問題 –
你一般都想在循環的外面創建你的線程,然後給每一個線程做部分工作。正如馬修所說,Parallel.ForEach是爲此而設計的。 – EricLaw
@ DanielA.White我正在嘗試執行parallel.foreach,它比foreach執行速度快得多,但無法在我的數據表的datarows上實現它。 – Nagaraj