4

System.Threading.Threadクラスが封印されている理由を理解しようとしています。

私の推測では、セキュリティThreadです。パラメータを取得するフレームワークメソッドがいくつかありますが、Threadこれらは封印されておらず、派生した悪意のあるタイプをフィードする可能性があります。しかし、そのようなタイプが行う可能性のある実際の悪意のあることは考えられません。

例を思いつくことができますか?

4

1 に答える 1

1

誰かの派生スレッド クラスが VolatileRead や VolatileWrite などをオーバーライドすると、.NET ランタイム全体で使用される可能性があり、何らかの損害を与える可能性があると想像できます。

また、セキュリティ上の理由からではない場合もあります。スレッドは多くのプログラムの実行に不可欠であるため、それらを機能的に正しく実装しないと、ランタイムの安定性に多大なコストがかかる可能性があります。

編集: シールされたクラスで仮想メソッドを呼び出すときにコンパイラによって callvirt が発行されるため、おそらくパフォーマンス上の利点はありません。JIT コンパイラーがこれを行う可能性はありますが、いずれにしても証拠はありません。

于 2013-01-14T13:31:33.647 に答える