J'ai un service Windows hébergeant plusieurs services WCF. Dans mon service Windows, j'ai deux objets avec un comportement singleton. Ces objets sont accessibles à travers les services WCF de l'extérieur. Un appel peut mettre une valeur dans les objets et un autre appel peut récupérer cette valeur.Objets partagés et problèmes de multithreading. Devrais-je m'en préoccuper?
Dois-je m'inquiéter des problèmes de multithreading? Je ne commence pas de discussion par moi-même. Mais de toute façon, devrais-je faire un verrouillage en accédant aux objets singleton? Qu'en est-il des méthodes d'accès aux objets? Ne devraient-ils pas être marqués comme synchronisés?
EDIT Ces objets ne sont pas des singletons. Les objets sont créés en utilisant IoC avec un comportement singleton.
Un de mes amis m'a également indiqué une classe Semaphore dans System.Threading. Qu'est-ce que tu penses ? Il semble que cette classe contrôle uniquement l'accès à un pool de ressources. – user137348
Si vous voulez commencer simple, vous pouvez tout aussi bien utiliser l'instruction "lock" de C#. Ce qui n'est rien de plus que du sucre syntaxique sur la classe Monitor. Cependant, assurez-vous de ne pas rendre visible l'instance que vous appelez verrouiller en dehors de votre classe singleton, afin d'éviter de vous déconnecter. –