2009-10-06 10 views
0

Je dois implémenter une DLL en C# qui contient une liste de tâches. La responsabilité de cette DLL est de gérer ces tâches. Différents processus vont interagir avec cette DLL, chacun pour sa propre tâche, identifiée par l'ID de la tâche.Partager des données dll entre différents processus

Mais puisque chaque processus aura sa propre copie des données dll, le challange est comment gérer cette liste. Cette liste doit être partagée par toutes les instances. J'ai googlé pour le partage de données dll et suis tombé this -

L'approche data_seg ne semble utile que pour les données statiques sans possibilité d'ajouter/de supprimer dynamiquement des tâches dans la liste. (Corrigez-moi si je me trompe).

Dois-je utiliser des fichiers mappés en mémoire? Que se passe-t-il si j'utilise simplement des E/S de base? Je pense à sérialiser cette liste de tâches dans un fichier. Chaque processus peut ensuite l'ouvrir avec FileShare.None set. De cette façon, l'accès au fichier sera mutuellement exclusif et un processus attendra si le fichier est déjà ouvert.

S'il vous plaît laissez-moi savoir quelle est la meilleure approche ou d'autres meilleures alternatives.

Merci

Répondre

1

Avez-vous pensé à accueillir le dll dans un service WCF? Vous pouvez ensuite demander à vos applications de passer des appels clients à ce service. Les données pourraient persister dans le processus d'hébergement wcf.

Questions connexes