2010-11-19 42 views

Répondre

9

De l'documentation:

statiques publics (en Visual Basic) de ce type sont thread sûr. Tous les membres d'instance ne sont pas garanti être thread-safe.

En d'autres termes, non, la méthode add n'est pas adaptée aux threads.

+3

+1 - lire la documentation est généralement un bon début. –

0

Une expérience récente (douloureuse) m'amène à penser que c'est très, TRÈS mauvais thread.

J'ai analysé un couple de fichiers de vidage contenant 7.4 millions et 8,8 millions d'instances XElement indésirables supplémentaires respectivement. Le mieux que je puisse déterminer, ils ont été créés quand un code anodin impliquant la manipulation des sous-nœuds d'un XElement (y compris l'appel de Add() dans certains cas) a été appelé à partir de deux threads de pool de threads en même temps.

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