C# UWP:写一个巨大的日志文件非常慢

C# UWP:写一个巨大的日志文件非常慢,c#,uwp,C#,Uwp,我试着写一个日志文件,它包含了大量的数据。每次我想添加数据来创建我想要的结构时,我都会使用AppendTextAsync,而且速度非常慢。有什么办法可以改进吗 await FileIO.AppendTextAsync(file, "All event log messages \r\n"); AppendTextAsync将打开文件,查找到底,写入文件,关闭文件。这涉及到操作系统的大量工作,尤其是编写一行文本 打开文件一次,附加所有需要的文本,然后关闭它。正如其他人提到的A

我试着写一个日志文件,它包含了大量的数据。每次我想添加数据来创建我想要的结构时,我都会使用AppendTextAsync,而且速度非常慢。有什么办法可以改进吗

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

AppendTextAsync
将打开文件,查找到底,写入文件,关闭文件。这涉及到操作系统的大量工作,尤其是编写一行文本


打开文件一次,附加所有需要的文本,然后关闭它。

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

不要马上等待?异步调用它然后等待它有什么意义?我需要等待,否则方法的执行将在调用完成之前继续。您所拥有的几乎相当于
FileIO.AppendText(文件,“所有事件日志消息”\r\n)。但在FileIO中没有追加文本。这只是一个问题,你是一步一步地收集日志,还是只是一个大转储?