2009-10-22 115 views
0

如果我使用ILGenerator編寫DynamicMethod並且我輸出的代碼是線程安全的,那麼生成的委託會是線程安全的嗎?.NET DynamicMethod線程安全?

我的問題是IL在該方法首次運行時被編譯。如果這是真的,如果其他線程試圖在編譯時運行委託,會發生什麼情況?

回答

3

它與標準委託沒有任何區別。它們在某處出現爲MSILJIT在需要時編譯它們。

一旦你以委託形式擁有它,它就是你可以調用的一段代碼。這就是你真正需要知道的。您正在運行的.NET(Rotor,Mono,Microsoft之一)的實現應該讓您免受任何關於此的考慮,否則這是實施中的一個錯誤。