2017-12-04 3 views
0

Ich teste eine universelle Windows-Plattform-Anwendung, die Schaltflächen hat. Wenn ich eine Reihe von Tasten drücke und das Programm nach Beendigung der Arbeit pausiere, sehe ich nur den Haupt-Thread und einen Worker-Thread. Wenn ich das gleiche schnell genug mache, werde ich einen zusätzlichen Arbeitsthread finden, der niemals verschwindet.C# Debugging - Wie kann ich feststellen, was einen Worker Thread erstellt hat?

Ich möchte meinen Fehler finden, der zu diesem übrig gebliebenen Worker-Thread führte, aber ich war bisher mit den Debugging-Tools nicht erfolgreich. Das Threadfenster zeigt nur ID, verwaltete ID, Kategorie = Worker Thread, Name = < Kein Name>, Position = < nicht verfügbar>, Priorität = Normal.

Wie kann ich mehr über diesen übrig gebliebenen Worker Thread herausfinden? Zum Beispiel, wenn es hervorgebracht wurde, was es tat, warum es nicht zerstört wurde.

+0

Es ist nur ein Threadpool-Thread, der gerade keinen Code ausführt. Warte auf Arbeit, geduldig im Pool warten. Sie sind immer da, wenn Sie UWP, viel und viel Async herum zielen. Das einzige Problem ist, dass Sie kein Problem haben. –

Antwort

0

Sie können Daten in Ihren Threads festlegen, während Sie sie erstellen, und vermutlich können Sie während des Debuggens auf diese Daten zugreifen. Sie können diesen Datenspeicher verwenden, um Debuginformationen zu speichern, z. B. wo sie erstellt wurden.

https://docs.microsoft.com/en-us/dotnet/standard/threading/creating-threads-and-passing-data-at-start-time

Auch gibt es Tipps hier Thread-exclusive data: how to store and access?

+0

Ich bin nicht sicher, ob ich das nutzen kann, da thread.start() und ähnliche Methoden in UWP-Anwendungen nicht verfügbar sind. Ich hoffe, dass jemand mir sagen kann, wie man weiß, was einen Worker-Thread hervorgebracht hat, ohne den Code zu ändern. – Dpt

Verwandte Themen