0

ILGenerator を使用して DynamicMethod を記述し、出力するコードがスレッド セーフである場合、結果のデリゲートはスレッド セーフになりますか?

私の懸念は、メソッドが初めて実行されたときにILがコンパイルされることです。それが本当なら、コンパイル中に他のスレッドがデリゲートを実行しようとするとどうなりますか?

4

1 に答える 1

3

標準のデリゲートとは何の違いもありません。それらは両方ともどこかにMSILとして存在し、 JITは必要に応じてそれらをコンパイルします。

デリゲート形式にすると、呼び出すことができるコードの本体になります。あなたが本当に知る必要があるのはそれだけです。実行している.NET(Rotor、Mono、Microsoftのもの)の実装は、これに関する考慮事項から保護する必要があります。そうしないと、実装のバグになります。

于 2009-10-22T06:48:00.463 に答える