12

Thread.Start().Net で (を呼び出して) マネージド スレッドを作成すると、バックグラウンドでネイティブ スレッドが 1 つだけ作成されるかどうかを知りたいですか? マネージ スレッドに対応するネイティブ スレッドはありますか? はいの場合、マネージド スレッドが待機またはスリープすると、対応するネイティブ スレッドも待機またはスリープすることになりますか?

4

1 に答える 1

14

はい、.NET スレッドは、現在のすべての CLR ホストのネイティブ オペレーティング システム スレッドにマップされます。

ファイバーのようにICLRTaskManager インターフェイスを介してホスティング API の別のものにマップするオプションがありますが、それは実際にはどのメインストリーム ホストにも実装されていません。.NET 2.0 時代の SQL Server チームはこれを試みましたが、十分な信頼性が得られなかったため、プロジェクトは中止されました。これは再試行されませんでした。技術的には、アンマネージ プログラムによって開始された、このマッピングを実装したカスタム ホスト CLR に遭遇する可能性がありますが、可能性はかなり低くなります。

于 2013-10-20T11:15:15.403 に答える