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:
Inter process communication c#
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...
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)
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