批量创建对象需要花费大量时间,即使在使用 Parallel.Foreach 之后也是如此



我正在尝试批量创建对象(> 4000(,需要8秒以上。

allrowslist<object[]>有 4000 条记录。

ConcurrentBag <data> lstdata = new ConcurrentBag <data>();
Parallel.ForEach(allRows, (row) => {
lstdata.Add(new data() {
Id = row["NB"],
ColumnId = row["COLUMN_ID"]],
Value = row["VALUE"]],
});
});

请指教。

并行不太可能更快,因为需要锁定。

尝试使用可枚举的 ctor

List<SimpleClass> simpleClassList = new List<SimpleClass>() { new SimpleClass(1, "bob"), new SimpleClass(2, "ken") };
var x = from t in simpleClassList
select new SimpleClass (t.ID + 10, t.Name);
ConcurrentBag<SimpleClass> simpleClassCB = new ConcurrentBag<SimpleClass>(x);
foreach (var v in simpleClassCB)
{
Debug.WriteLine($"{v.ID}  {v.Name}");
}

最新更新