Das ist nicht die Art, wie es funktioniert. Jeder Thread in einem verwalteten Programm kann verwalteten Code ausführen, einschließlich solcher, die ursprünglich als nicht verwalteter Thread gestartet wurden. Was am meisten ist, der Hauptthread und jeder threadpool thread beginnt mit der Ausführung von rein nicht verwaltetem Code. Es tappt in verwalteten Code über die Art von Gateway, die von Marshal.GetDelegateForFunctionPointer() bereitgestellt wird.
Dutzende von (sonst nicht aktiven) Threads zu sehen ist nicht ungewöhnlich. In der Regel handelt es sich um Threadpool-Threads und Threads, die von COM-Servern gestartet werden. .NET fehlt die Installation, die Sie Thread.ManagedThreadId für diese Threads verwenden müssen. Das ist beabsichtigt, ein logischer .NET-Thread muss kein physischer Betriebssystem-Thread sein. Obwohl es momentan keinen Host gibt, wo das nicht der Fall ist.
Sie müssen vermeiden, die Frage stellen zu müssen.
Danke, dass ich weiß. Aber ich hätte gerne eine Antwort. Wie finde ich heraus, wie viele verwaltete Threads in meinen Anwendungen zu jeder Zeit erstellt werden? –
Sie erstellen sie, zählen sie. –
das ist der Punkt! Ich benutze 3D-Party-API und sie wollen nicht Details zu offenbaren, auch könnte es Thread-Pool oder eine andere Software usw. verwenden .... –