2009-10-22 6 views
0

Si j'écris un DynamicMethod avec un ILGenerator et que le code que je produis est thread safe, le délégué résultant serait threadsafe?.NET DynamicMethod Thread Safe?

Mon souci est que le IL est compilé la première fois que la méthode s'exécute. Si cela est vrai, que se passe-t-il si un autre thread essaie d'exécuter le délégué pendant qu'il est en train de compiler?

Répondre

3

Cela ne fait aucune différence avec un délégué standard. Ils sont tous les deux présents comme MSIL quelque part et les JIT les compilent quand ils le veulent. Une fois que vous l'avez sous forme de délégué, c'est un corps de code que vous pouvez appeler. C'est tout ce que tu as vraiment besoin de savoir. L'implémentation de .NET que vous utilisez (Rotor, Mono, Microsoft one) devrait vous protéger de toute considération à ce sujet, sinon c'est un bug dans l'implémentation.

Questions connexes