.NET DynamicMethod Поток безопасно? - PullRequest
0 голосов
/ 22 октября 2009

Если я напишу DynamicMethod с ILGenerator, а код, который я вывожу, является потокобезопасным, получится ли полученный делегат потокобезопасным?

Меня беспокоит то, что IL компилируется при первом запуске метода. Если это так, что произойдет, если какой-то другой поток попытается запустить делегат во время его компиляции?

1 Ответ

3 голосов
/ 22 октября 2009

Это не имеет никакого значения со стандартным делегатом. Они оба присутствуют как MSIL где-то, а JIT компилирует их, когда захочет.

Как только вы получите его в форме делегата, это будет фрагмент кода, который вы можете вызвать. Это все, что вам действительно нужно знать. Реализация .NET, в которой вы работаете (Rotor, Mono, Microsoft one), должна оградить вас от любых соображений по этому поводу, в противном случае это ошибка в реализации.

...