2010-02-15 51 views
2

我剛剛遇到一種情況:我正在調試一個線程,該線程遍歷大量數據。我正在使用Debug.WriteLine來打印正在處理的記錄。剛剛發生的事情是線程已經報告它已經處理了所有記錄,但是,Visual Studio的調試窗口仍然顯示出來。我確信線程已經完成了它的工作。C# - Debug.WriteLine - 這個函數是ASync嗎?

Is Debug.WriteLine異步或數據已被堆疊在Visual Studio的緩衝區中,並且顯示緩慢?

回答

2

MS沒有提到這種方法是異步的。 Debug.WriteLine方法對trace監聽器進行操作,並且您看到的現象是實現trace監聽器而不是Debug.WriteLine的結果。

一般來說,當緩衝區已滿或超時之後,輸出會刷新到屏幕上,而不會發生。這意味着你應該期望輸出是同步的,但是延遲了。

2

Visual Studio正在做異步部分。 Win32 API OutputDebugString在Visual Studio的輸出窗口中執行相同的操作。

您可以嘗試使用DebugView代替。