Je suis en train d'écrire un programme qui va manipuler certains objets, appelons-les "Mots". Chaque mot est une instance de l'une de plusieurs classes. Il peut y avoir beaucoup, beaucoup de ces à la fois.C# fichier de données aux objets
Chacun de ces objets Word doit avoir accès à un dictionnaire, stocké dans un fichier XML. Je ne pense pas que chaque objet Word devrait charger le fichier XML séparément. Les objets Word doivent pouvoir accéder à un pool global de données de programme.
Quelle est la meilleure façon de gérer cela? Dois-je avoir une classe appelée ProgramData qui contient le document XML et est passée à chaque objet Word quand ils sont créés? Cela ne provoquera pas le chargement de plusieurs instances du fichier XML en mémoire, n'est-ce pas? Puis-je faire ce que je veux faire sans passer ProgramData à chaque nouvel objet?
Pourquoi un verrouillage est-il nécessaire? Le code d'OP est mono-thread, il peut simplement définir la propriété statique avant de l'utiliser. En outre, le verrouillage est probablement au-dessus du niveau de l'OP en ce moment. – KyleM
Je ne fais aucune hypothèse sur le monofiletage, ni la capacité technique des OP à utiliser des constructions de verrouillage correctes. Si ce sera un set-and-forget, le verrouillage peut ne pas être nécessaire, mais c'est quelque chose pour lui/elle à considérer. – drharris
Assez juste. Pour reformuler ... mon commentaire précédent consistait surtout à avertir l'OP que définir la propriété statique en premier est suffisant, et s'il le fait, il n'a pas besoin de s'inquiéter de la sécurité du thread ou du verrouillage. Ne pas essayer de le frapper, et +1 pour votre réponse. :) – KyleM