alavoler
Messages postés2Date d'inscriptionvendredi 7 juillet 2006StatutMembreDernière intervention 4 février 2008
-
4 févr. 2008 à 10:40
leprov
Messages postés1160Date d'inscriptionvendredi 23 juillet 2004StatutMembreDernière intervention21 octobre 2010
-
4 févr. 2008 à 15:19
Bjr,
J'aimerais lancer une meme application plusieurs fois et qu'à partir de
la seconde fois, l'application comprend que l'application est deja
lancée, et lui envoit alors des petites données, et quitte...
j'ai trouvé le moyen de faire ca avec du remoting .Net, seulement
je trouve ca un peu lourd de devoir utiliser un protocol reseau en
local (firewall à la grouille sur la machine user... entre autre
restriction...)
si quelqu'un a une solution miracle, générique, et pas trop complexe à mettre en oeuvre... je suis preneur !
On m'a parlé de EventWaitHandle et de thread... mais je ne suis novice dans le domaine des treads
merci d'avance
A voir également:
C# interprocess communication
Interprocess communication c# - Meilleures réponses
C# inter process communication - Meilleures réponses
grosso modo il s'agit d'avoir une variable qui te dis si t'as une instance deja en cours, et a chaque demarrage de l'application, tu teste cette variable...
SharpMao
Messages postés1024Date d'inscriptionmardi 4 février 2003StatutMembreDernière intervention 7 juin 201069 4 févr. 2008 à 12:08
Euh...
Sauf erreur, les membres statiques sur lesquels s'appuient les singletons ne sont pas cross-application.
Tu dois à mon avis garder du remoting si tu veux passer des inforamtions d'une appli à une autre.
Mais si tu es en .net 2.0 ou plus, tu peux utilser IPC (Inter Process Communications)
Amicalement, SharpMao
"C'est pas parce qu'ils sont nombreux à avoir tort qu'ils ont raison!"
(Coluche / 1944-1986 / Pensées et anecdotes)
Vous n’avez pas trouvé la réponse que vous recherchez ?
leprov
Messages postés1160Date d'inscriptionvendredi 23 juillet 2004StatutMembreDernière intervention21 octobre 201017 4 févr. 2008 à 15:19
si tu utilise un mutex :
-Attention a bien utiliser un mutex de portée systeme et a le réouvrir comme il faut (regarde dans la msdn la doc de Mutex.OpenExisting qui te montrera un modèle d'utilisation de mutex de ce type).
-Attention a bien libérer le mutex dans TOUS les cas (il faut donc traiter les exceptions non gérées de l'application en libérant le mutex, la fermeture normale de l'appli, etc) autrement en cas de crash de l'appli (ce qui peux toujours arriver meme si tu as confiance en ton code) le mutex ne sera pas libéré. Il te restera toujours le cas du CTRL+ALT+SUPPR pour fermer ton appli qui empechera de libérer le mutex et qui forcera a reboot pour relancer l'appli.
Le mutex est une solution intéressante et puissante, mais contraignante