UWP:编写巨大的日志文件非常慢

时间:2019-02-14 09:43:20

标签: c# uwp

我尝试编写一个日志文件,其中包含大量数据。每当我想添加数据来创建所需的结构时,我都会使用AppendTextAsync,这非常慢。有什么办法可以改善吗?

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

2 个答案:

答案 0 :(得分:2)

AppendTextAsync将打开文件,搜索到最后,写入文件,然后关闭文件。这需要为OS进行大量工作,尤其是编写一行文本时。

打开文件一次,附加所有必需的文本,然后将其关闭。

答案 1 :(得分:0)

就像其他人提到的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();