.NET DynamicMethod thread-safe?
-
05-07-2019 - |
Pergunta
Se eu escrever uma DynamicMethod com um ILGenerator eo código que eu saída é segmento seguro seria o delegado resultando ser threadsafe?
A minha preocupação é que a IL é compilado pela primeira vez o método é executado. Se isso for verdade o que acontece se algumas outras tentativas de rosca para executar o delegado enquanto ele está compilando?
Solução
Ele não faz nenhuma diferença com um delegado padrão. Eles estão presentes como MSIL em algum lugar e o JIT compilá-los quando quiser.
Uma vez que você tê-lo em forma delegado é um corpo de código que você poderia chamar. Isso é tudo que você realmente precisa saber. A implementação de .NET você estiver executando em (Rotor, Mono, Microsoft um) deve protegê-lo de qualquer consideração sobre isso, caso contrário, é um bug na implementação.