Ich möchte wissen, ob das Erstellen eines verwalteten Threads in .Net (durch Aufrufen von Thread.Start()
) dazu führt, dass genau ein nativer Thread im Hintergrund erstellt wird.
Gibt es einen entsprechenden nativen Thread für verwaltete Threads?
Wenn ja, wenn ein verwalteter Thread wartet oder schläft, bedeutet dies, dass der entsprechende native Thread auch wartet oder schläft?
Ja, ein .NET-Thread wird auf allen aktuellen CLR-Hosts einem nativen Betriebssystemthread zugeordnet.
Es gibt eine Option, um es über die ICLRTaskManager-Schnittstelle mit etwas anderem in der Hosting-API zu verknüpfen , wie eine Faser, aber das ist tatsächlich nicht in einem der Hauptstream-Hosts implementiert. Das SQL Server-Team im .NET 2.0-Zeitrahmen versuchte dies, aber das Projekt wurde aufgegeben, als es nicht zuverlässig genug sein konnte. Dies wurde nicht erneut versucht. Technisch gesehen könnten Sie auf eine benutzerdefinierte gehostete CLR stoßen, die von einem nicht verwalteten Programm gestartet wurde, das diese Zuordnung implementiert hat, aber die Chancen sind eher gering.
Tags und Links .net c# multithreading