Question

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-il threadsafe?

Je crains que la IL soit compilée lors de la première utilisation de la méthode. Si cela est vrai, que se passera-t-il si un autre thread tente d’exécuter le délégué pendant la compilation?

Était-ce utile?

La solution

Cela ne fait aucune différence avec un délégué standard. Ils sont tous deux présents sous forme de MSIL quelque part et de JIT les compiler quand il le souhaite.

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 vous devez vraiment savoir. L’implémentation de .NET dans laquelle vous travaillez (Rotor, Mono, Microsoft) devrait vous protéger de toute considération à ce sujet, sinon c’est un bogue dans l’implémentation.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top