После долгих экспериментов изменив эту строку в ответе Дарина Димитрова:
using (var stream = File.OpenRead(file))
до:
using (var stream=new FileStream(file,System.IO.FileMode.Open,
System.IO.FileAccess.Read,
System.IO.FileShare.ReadWrite,
65536))
Изменение размера буфера чтения с 4 КБ по умолчанию на 64 КБ может сократить до 10% времени чтения файла при чтении «строки за раз» с помощью потокового считывателя, особенно если текстовый файл большой. Большие размеры буфера не улучшают производительность.
Это улучшение присутствует даже при чтении с относительно быстрого SSD. Экономия становится еще более существенной, если использовать обычный HD. Интересно, что вы получаете это значительное улучшение производительности, даже если файл уже кэшируется ОС (Windows 7 / 2008R2), что несколько нелогично.