Question

Est-il sûr d'ajouter des éléments enfants à un XElement via sa méthode ADD de manière parallèle (comme dans un foreach parallèle)?

Merci!

Était-ce utile?

La solution

De la documentation :

  

Tout public static (Shared en Visual   Les membres de base) de ce type sont thread   sûr. Tous les membres d'instance ne sont pas   garantie d'être thread-safe.

En d'autres termes, non, la méthode add est pas thread-safe.

Autres conseils

L'expérience récente (douloureuses) conduit à penser que moi, il est très, fil très non sûr.

J'analysé quelques fichiers de sauvegarde contenant 7,4 millions et 8,8 millions de cas de XElement indésirables supplémentaires respectivement. Mieux que je peux déterminer, ils se sont créés quand un code apparemment inoffensive impliquant la manipulation des sous-nœuds d'un XElement (y compris appeler Add () dans certains cas) se est appelé à partir de deux fils de pool de threads en même temps.

Ce n'est pas trop surprenant - XElement et les classes associées sont mises en œuvre à l'aide liée liste ressemblant à des structures, et si vous brouillez le lien fait référence à une variété de résultats étranges peut en résulter -. Boucles, des fragments non attachées, etc

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