Je crée une classe qui aura une association clé-valeur de quelque sorte. Actuellement, j'ai quelque chose de similaire à ce qui suit :
private static Dictionary> PropertyCache { get; set; }
Est-ce la bonne façon de mettre en œuvre une approche thread-safe ? Pour une raison quelconque, quelque chose me dérange concernant l'effet de static
sur le Dictionary
dans ce cas. Si c'est correct, y a-t-il une manière incorrecte qui peut être démontrée afin que je puisse l'éviter dans le reste de mon code.
De plus, devrait-il être en lecture seule (je vais seulement ajouter/enlever des éléments de la collection) ?
Si cela fait une différence, la propriété sera toujours déclarée private
.
Merci d'avance
Bien que marqué C#, les réponses en VB sont acceptées, je suis "bi-lingue" en quelque sorte
EDIT:
Suite à la discussion avec Jon Skeet dans les commentaires de sa réponse, l'utilisation sera la suivante :
// Je ferai ceci
PropertyCache.Add(typeof(string), new List());
PropertyCache.Remove(typeof(string));
// Je ne ferai jamais ceci
PropertyCache = new Dictionary>();
Je ne vais jamais non plus itérer sur la collection, seulement y accéder par clé.