Я использую параллель.для l oop для данных. Значение, которое изменяется в l oop, является cirNumb, и с этим значением я запрашиваю таблицу данных для заполнения объекта типа IEnumerable<DataRow>
. Затем я вызываю экземпляр структуры и должен передать в структуру эту коллекцию IEnumerable<DataRow>
. Внутри структуры я использую предыдущую коллекцию для заполнения таблицы данных, но я обнаружил, что иногда результат верен, иногда нет, и я предполагаю, что ошибка в присвоении таблицы данных IEnumerable<DataRow>
. Вот некоторый код:
Parallel.For(0, dtCir.Rows.Count, (i, state) =>
{
int cirNumb = Convert.ToInt32(dtCir.Rows[i]["no_of_circuits"]);
IEnumerable<DataRow> dtConnectionSizeLoop = from dtConn in
dtConnectionDatabase.AsEnumerable().AsParallel()
where dtConn.Field<Int32>("no_of_circuits") == cirNumb
CalculateDC calcDC;
calcDC = new CalculateDC();
calcDC.SetParameters(...,dtConnectionSizeLoop,...);
//do some stuffs
}
Метод struct SetParameters
делает некоторые вещи, а также назначает объекту данных объект IEnumerable<DataRow>
:
DataTable var_dtConnectionSize = dtConnectionSize.CopyToDataTable();
Может кто-нибудь помочь мне, пожалуйста?