我想在一個並行foreach循環中將一個DataTable附加到另一個DataTable。我正在使用合併來追加數據表。當我使用合併或沒有合併時,它花費太多時間來完成如此之快。Parallel.ForEach在合併數據表時需要太多時間c#
ReportService _rs = new ReportService();
DataTable dtMain = new DataTable();
Parallel.ForEach(brandCode, SICode =>
{
dtMain.Merge(_rs.myFunctionReturnDataTable(SICode));//this takes too much time
//_rs.myFunctionReturnDataTable(SICode);this does not take time
});
你鎖定了嗎?合併不是線程安全的。你有沒有嘗試將行添加到dtMain的末尾?在目前的狀態下,代碼在性能上存在缺陷。或者實際的代碼看起來不同? – Sefe
不,我沒有鎖定。我沒有得到如何添加行到dtMain結束給一些示例代碼。這是實際的代碼。 – satyender
'DataTable'方法不是線程安全的。你不能這樣做。 – Enigmativity