У меня есть расположение различных файлов csv в массиве strFilePath
(почти 1000 файлов, в каждом из которых содержится 1 миллион записей). Чтение файлов и объединение всех данных в одну таблицу данных занимает много времени. Поэтому я решил продолжить параллельную обработку.
ТЕКУЩИЙ КОД
DataTable dtMerge=new DataTable();
for(int i=0;i<strFilePath.Count;i++)
{
Parallel.For(0, 3,m =>
{
clsNewClass objCls=new clsNewClass();
DataTable dt=objCls.ReadCSV(strFilePath[m+i]);
});
m+=3;
}
Вопрос в том, как я могу объединить все данные из таблицы данных dt
в глобальную таблицу данных dtMerge
или включить все результаты в глобальную переменную dtMerge
?
КОД ОЖИДАЕТСЯ РАБОТАТЬ
DataTable dtMerge=new DataTable();
for(int i=0;i<strFilePath.Count;i++)
{
Parallel.For(0, 3,m =>
{
clsNewClass objCls=new clsNewClass();
// Is it possible like the below?
dtMerge = objCls.ReadCSV(strFilePath[m+i]);
});
m+=3;
}
m
не заявлен уm+=3
это первое, что у меня выскакивает. На самом деле вам может быть гораздо лучше сделатьParallel.ForEach(strFilePath, filepath => { ... })
- person Scott Chamberlain   schedule 03.12.2014