0
是 將表添加到數據集由多個線程是線程安全的?將表添加到數據集由多個線程是線程安全的?
List<Action> TestActions = new List<Action>();
Action action1 = new Action(() => Method1(dsDataset));
TestActions.Add(action1);
Action action2 = new Action(() => Method2(dsDataset));
TestActions.Add(action2);
Action action3 = new Action(() => Method3(dsDataset));
TestActions.Add(action3);
try
{
Parallel.ForEach(TestActions, (a) => a());
}
Method1(DataSet ds) {
//excecute a db call and returns datatable
Datatable db ={database query}
ds.Tables.Add(db)
}
Method2(DataSet ds) {
//excecute a db call and returns datatable
Datatable db ={database query}
ds.Tables.Add(db)
}
Method3(DataSet ds) {
//excecute a db call and returns datatable
Datatable db ={database query}
ds.Tables.Add(db)
}
是上述代碼的工作原理或我需要鎖當每個線程試圖添加鎖放在數據集? 有沒有更好的辦法可以做到?