2010-02-15 3 views
2

Je viens de rencontrer une situation: je déboguais un thread qui itère à travers une grande quantité de données. J'utilisais Debug.WriteLine pour imprimer quel enregistrement est en cours de traitement. Ce qui vient de se passer, c'est que le thread a signalé qu'il a traité tous les enregistrements, cependant, la fenêtre de débogage de Visual Studio est toujours affichée. Je suis certain que le fil a terminé son travail.C# - Debug.WriteLine - est cette fonction ASync?

Est-ce que Debug.WriteLine Async ou des données ont été empilées dans le tampon de Visual Studio et s'affichent lentement?

Répondre

2

MS ne mentionne pas cette méthode comme étant asynchrone. La méthode Debug.WriteLine fonctionne sur les écouteurs de trace et les phénomènes que vous voyez sont le résultat de l'implémentation de l'écouteur de trace et non du Debug.WriteLine.

En général, la sortie est envoyée à l'écran lorsqu'un tampon est plein ou après une temporisation et non pas comme cela arrive. Cela signifie que vous devez vous attendre à ce que la sortie soit synchrone mais retardée.

2

Visual Studio effectue la partie asynchrone. L'API Win32 OutputDebugString fait la même chose dans la fenêtre de sortie de Visual Studio.

Vous pouvez essayer d'utiliser DebugView à la place.