Trace.Flush() -是否会立即将数据写入TextWriterTraceListener

本文关键字:数据 TextWriterTraceListener Flush 是否 Trace | 更新日期: 2023-09-27 18:08:09

如果使用自动刷新,或者在每次写入消息时手动刷新,我注意到在Visual studio调试时,我没有看到写入文件的数据,即使我启用AutoFlush = true。只有当我停止调试器时,文件才会更新。这使我相信数据只在特定时间或程序完成时被刷新。

或者这是调试的副作用,在实际程序中会有不同的行为?

什么时候数据会被写入?马上,还是在某个事件或一段时间之后?

编辑:我确实在Visual Studio的Debug output窗口中看到了输出消息,只是不在文件中。

Trace.Flush() -是否会立即将数据写入TextWriterTraceListener

我想我找到了一个解释即使调用了TraceEvent,也没有创建跟踪文件?

"当写入器的内部缓冲区填满时,写入器会刷新到磁盘,如果内存可用,则默认缓冲区大小为8KB。这不是跟踪侦听器的一个方面,而是它写入的底层文件流。"