Используйте поток, чтобы прочитать данные и записать их непосредственно в файл.Попросите ваше приложение обновлять последнее число строк из файла так часто.Может быть, даже обновление будет основано на уведомлении из потока читателя?
Используя несколько потоков, вы будете реагировать на интерфейс пользователя и, записывая прямо в файл, убедитесь, что собрали вседанные.Кроме того, это позволит вам приостановить отображение достаточно долго, чтобы фактически скопировать / вставить данные, которые вы хотите, продолжая захват данных.
Возможно, вы могли бы реализовать свой собственный тип чтения файлов, который позволил бы пользователю "прокрутите файл, загрузив только те части, которые вы действительно можете отобразить на экране одновременно.