Das einzelne Durchlaufen eines einzelnen Threads scheint in VS 2012 größtenteils behoben zu sein (mit einigen Einschränkungen, die Sie in meinem Link unten sehen können). Haltepunkte sind ein Schmerz.
Das Einfrieren und Auftauen von Threads ist die übliche Problemumgehung, wie in früheren Antworten angegeben, aber es ist mühsam und kann zu Hängen führen, wenn Ihr Thread auf einen anderen Thread wartet, der eingefroren ist. Es kann schwierig sein, sich von diesen zu erholen, ohne Ihren Platz in Ihrem Interessensfaden zu verlieren.
Ein weiterer nützlicher Workflow besteht darin, einen Thread-Filter auf Ihre Haltepunkte anzuwenden, der auch in einigen Antworten angegeben ist:
Erstellen Sie einen Haltepunkt, klicken Sie mit der rechten Maustaste auf den Haltepunkt, klicken Sie auf Filter und geben Sie ThreadId = 7740 (Ihre Thread-ID aus dem Thread-Fenster) ein.
Dies kann sehr mühsam sein.
Mein Vorschlag an Microsoft ist, einzelne Schritte (und Variationen davon) so zu korrigieren, dass Threads niemals gewechselt werden, es sei denn, in einem anderen Thread wird ein expliziter Haltepunkt erreicht. Sie sollten auch eine Verknüpfung hinzufügen (möglicherweise Strg-F9), um einen Haltepunkt mit der aktuellen Thread-ID als Filter zu erstellen. Dies würde den zweiten Workflow viel komfortabler machen.
Stimmen Sie über den Vorschlag ab, wenn Sie damit einverstanden sind, oder fügen Sie Ihre eigenen Vorschläge hinzu:
https://visualstudio.uservoice.com/forums/121579-visual-studio/suggestions/8543248-make-the-debugger-stick-to-the-current-thread-inst