Trace.Flush() – 数据会立即写入TextWriterTraceListener吗?

如果在每次写入消息时使用自动刷新或手动刷新,我在Visual Studio中调试时发现了一些东西,即使启用AutoFlush = true,我也看不到写入文件的数据。 当我停止调试器时,文件才会更新。 这让我相信数据只是在特定时间或程序完成时被刷新。

或者这是调试的副作用,在实际程序中它会表现不同?

数据写在什么时候? 马上,或在一些事件或时间之后?

编辑:我确实在Visual Studio的调试输出窗口中看到输出消息,而不是在文件中。

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

“当内部缓冲区填满时,写入器将刷新到磁盘,如果内存为我提供,则默认缓冲区大小为8KB。这不是跟踪侦听器的一个方面,而是它写入的基础文件流。”