質問

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

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

役に立ちましたか?

解決

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

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

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top