UWP: запись огромного файла журнала очень медленная - PullRequest
0 голосов
/ 14 февраля 2019

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

        await FileIO.AppendTextAsync(file, "All event log messages   \r\n");

Ответы [ 2 ]

0 голосов
/ 14 февраля 2019

Как кто-то еще упомянул AppendTextAsync, открывайте и пишите и закрывайте файл каждый раз, поэтому я изменил его на:

            var stream = await file.OpenAsync(Windows.Storage.FileAccessMode.ReadWrite);
            using (var outputStream = stream.GetOutputStreamAt(0))
            {

                using (var dataWriter = new Windows.Storage.Streams.DataWriter(outputStream))
                {


                    dataWriter.WriteString("All event log messages   \r\n");
                    await dataWriter.StoreAsync();
                    await outputStream.FlushAsync();

                }
            }
            stream.Dispose();
0 голосов
/ 14 февраля 2019

AppendTextAsync откроет файл, выполнит поиск до конца, запишет в файл, закроет файл.Это требует много работы для ОС, особенно для написания одной строки текста.

Откройте файл один раз, добавьте весь необходимый текст, затем закройте его.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...