В общем, другу понадобился софт, который удаленно, на его сервере ищет из всех содержащихся там текстовых файлов совпадение по заданному слову. Я написал класс отвечающий за TCP соединение и вот тут вопрос по классу, который будет искать. В принципе все работает, даже системные ресурсы не так сильно жрет (за исключением процессора до 20%), но все же скорость поиска меня не устаревает, хочется побыстрее. Вот код и вопрос, как можно улучшить, ускорить его работу
foreach (string item in dirWork)
{
foreach (string item2 in SafeEnumerateFiles(item))
{
using (StreamReader _reader = new StreamReader(new BufferedStream(File.OpenRead(item2), 1024 * 1024)))
{
string line;
while ((line = await _reader.ReadLineAsync()) != null)
{
if (line.Contains(ItemSearch))
{
name.Add($"{Path.GetFileName(item2)}");
result.Add($"{line}");
}
}
}
}
}
dirWork содержит коллекцию папок лежащие на разных дисках. SafeEnumerateFiles(item) метод возвращает полную коллекцию всех файлов в папке и подпапках.

StringComparison.Ordinalв помощь. – Alexander Petrov May 24 '21 at 23:54File.OpenReadиспользоватьnew FileStreamс параметромbool async= true. – Alexander Petrov May 25 '21 at 00:00