我有DataTable,有很多线程要填充这个表(对于每一列),所以我遇到了很多麻烦。现在每个线程都假设使用Copy of table,但是当我调用
时 MainTableCopy = new DataTable();
lock (MainTable)
MainTableCopy = MainTable.Copy();
它会抛出一个例外"列" MName"受到独特性的制约。 "项目12"的值已经存在。" MainTable具有相同的设置和" MName"中的每个值。是独特的。
我做错了什么? MainTableCopy在哪里克隆行,在MainTable中是唯一的?
P.S。我知道我可以一行一行地复制,但在这种情况下,我想了解,到底发生了什么。
填充表格的线程
DataTable MainTableCopy = new DataTable();
lock (MainTable)
MainTableCopy = MainTable.Copy();
foreach (DataRow row in MainTableCopy.Rows)
{
//Getting info
DataRow Drw = null;
while (Drw == null)
Drw = MainTable.Rows.Find(name);
lock (Drw)
{
Drw.SetField("MProfit", 0);
//Fill data
}
}