之前用DataTable进行遍历,出现索引超出范围问题,因为List<T>也只支持单线程,改用 ConcurrentBag解决问题。在Parallel ForEach/For 外的变量要避免同时操作同一个变量造成 数据不一致的情况。 List<T> 转为 ConcurrentBag ConcurrentBag<T> concT= new ConcurrentBag<T>(this.db.T.ToList());