我刚遇到一种情况:我正在调试一个迭代大量数据的线程。我正在使用Debug.WriteLine来打印正在处理的记录。刚刚发生的事情是该线程报告它已经处理了所有记录,但Visual Studio的调试窗口仍在显示。我很肯定线程已经完成了它的工作。
Debug.WriteLine Async或数据是否已堆叠在Visual Studio的缓冲区中并且显示缓慢?
答案 0 :(得分:2)
Visual Studio正在执行异步部分。 Win32 API OutputDebugString在Visual Studio的输出窗口中执行相同的操作。
您可以尝试使用DebugView。
答案 1 :(得分:2)
MS没有提到这种方法是异步的。 Debug.WriteLine方法对跟踪侦听器进行操作,您看到的现象是跟踪侦听器而不是Debug.WriteLine的实现结果。
通常,当缓冲区已满或超时后,输出会刷新到屏幕,而不会发生。这意味着您应该期望输出同步但延迟。