2012-06-13 10 views
7

Ich habe versucht, einige Probleme im Zusammenhang mit Threads mit einer Anwendung zu debuggen. Wenn ich an die Anwendung anschließen sehe ich ein Fenster wie dieses:<Not Available> und [Thread Destroyed] Details im Thread-Fenster für Visual Studio 2010

enter image description here

Was mit einem Namen dieser Thread „[Gewinde zerstört]“? Der App-Code schreibt diesen Namen nicht mit Sicherheit.

Was bedeutet, dass ein Thread die Aufrufliste nicht verfügbar hat. Der Thread "Acquisition Engine" wird in der Anwendung erstellt und wird innerhalb einer Schleife ausgeführt, bis er gestoppt wird. Wenn der Thread gestoppt wird, verlässt er die Schleife und beendet ihre Lebensdauer, so dass sie in der Thread-Liste sein sollte. Wenn es da ist, weil es die Schleife noch nicht verlassen hat, also wiederum, was bedeutet, dass der Callstack nicht verfügbar ist?

Vielen Dank im Voraus für Ihre Hilfe, diese scheint nicht einfach.

+3

Es ist ein toter Papagei: http://www.youtube.com/watch?v=4vuW6tQ0218 –

+0

Ein Thread reserviert ein Windows-Kernel-Objekt, das am Leben erhalten wird, solange jemand ein Thread-Handle offen hält. Ohne zu wissen, was der Debugger hier genau anzeigt, würde ich denken, dass jemand noch ein verwaltetes Thread-Objekt am Leben hält, das auf einen erregten Thread zeigt. –

+0

Was ist mit den beiden, die nicht zur Verfügung stehen des Thread Destroyed? –

Antwort

1

[Thread zerstört] bedeutet, dass der Destruktor aufgerufen wurde und der Thread nicht mehr existiert.

+0

Und warum erscheint es im Threads-Fenster? –

+1

Wahrscheinlich, weil dort ein Thread aufgelistet war, der tatsächlich etwas in der Sitzung getan hat, jetzt aber nicht mehr existiert. Es zeigte Daten über diesen Thread und zeigt nun den neuen Status dieses Threads an. – IvoTops

+0

Und was ist mit dem Callstack nicht verfügbar (sorry, ich habe diese Frage vergessen) –