Member 14646256 Ответов: 3

Могу ли я прочитать несколько CSV-файлов (в папке) с помощью многопоточности для быстрой обработки в C#


Я новичок в C# и работаю над проектом. Проект считывает несколько файлов .csv (в папке), анализирует их и показывает результаты в приложении windows. Хотя он обрабатывает файлы очень медленно. Поэтому я должен был спросить, могу ли я использовать многопоточность для чтения файлов или есть какая-то другая техника, которую я могу реализовать, чтобы сделать чтение и анализ файлов и показать результаты быстро?
Спасибо

Что я уже пробовал:

Использование простых методов чтения и синтаксического анализа файлов

3 Ответов

Рейтинг:
7

#realJSOP

Размер файла, количество файлов и то, что вы делаете с данными, - все это основные факторы. Только вы можете определить сладкое пятно, или если вы даже должны реализовать какой-либо вид резьбы.


Рейтинг:
20

Richard MacCutchan

Многопоточность не гарантирует большой разницы и будет зависеть от того, что делает ваш код. Первое, на что нужно обратить внимание, - это то, где на самом деле происходит медленная обработка. Является ли задержка вызвана скоростью получения данных с диска или их обработкой после того, как они попали в память?


Member 14646256

Если задержка вызвана обработкой, как только она находится в памяти, есть ли какое-либо другое решение, которое вы можете порекомендовать?
Программа считывает csv-файл, анализирует его и показывает детали, а затем делает то же самое для следующего файла, таким образом, она считывает все файлы в папке. Так возможно ли также, что я сначала прочитаю все файлы, разберу их, а затем покажу детали всех сразу? Возможно ли это?

Richard MacCutchan

Вы не можете работать над решением, пока не узнаете, где находится задержка. Выполните несколько тестов времени, чтобы узнать, где программа проводит больше всего времени. Только тогда вы можете начать работать над улучшением производительности.

Рейтинг:
17

RickZeeland

Я бы рекомендовал использовать Задача.Фабрика, смотрите пример здесь: Каков наилучший способ асинхронного синтаксического анализа CSV - файла в c# - Stack Overflow[^]