IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

C# Discussion :

[C#-Avis] Communication Inter-Process depuis un meme executable ?


Sujet :

C#

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    1 002
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 1 002
    Par défaut [C#-Avis] Communication Inter-Process depuis un meme executable ?
    Bjr,

    J'ai un pti problème,

    j'ai une application qui se lance sur une machine et qui recoit en argument X ensuite elle fait un traitement..., je dois maintenant en lancant une nouvelle fois cette application lui passer un argument Y....

    J'ai envie que ce soit le premier processus qui prenne la main... donc je dois en gros verifier si je suis deja lancé, si OUI, alors je dois lui donner mon argument Y, et quitter...

    Je crois que c'est de la communication inter-process ?
    Le shared memory serait il une bonne solution ?

    Je precise que la communication est sur deux "process" issue d'un meme executable sur une machine locale

    si quelqu un a des mots clés... ou des conseils je suis preneur

    merci

  2. #2
    Expert confirmé
    Avatar de ced600
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Août 2006
    Messages
    3 364
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Août 2006
    Messages : 3 364
    Par défaut
    tu n'es pas clair sur ce que tu veux faire.
    Ton process est lancé.
    Que veux tu faire ?
    l'arrêter et le relancer ?
    ou le lancer un second process et arrêté le premier ?

  3. #3
    Membre éclairé
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    1 002
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 1 002
    Par défaut
    ced600

    arf... désolé de pas etre clair, je vais essayer de reformuler:


    - la scene se passe sur une seul machine, avec un meme executable:

    J'ai toto.exe (pid:1) qui se lance une premier fois, il fait son traitement, il est tjs actif


    J'ai toto.exe (pid:2) qui se lance une deuxieme fois (alors que toto.exe (pid:1) est toujours actif), il voit des le debut que toto.exe est deja present sur la machine, il doit donc lui envoyer un "MESSAGE" et quitter


    toto.exe (pid:1) lit le "MESSAGE" et fait son traitement...


    Je pense que le shared memory peut etre adapté ? par contre je suis obligé de surveiller avec un timer si son contenu a changé ? ou existe t il une meilleurs solution ?

  4. #4
    Expert confirmé
    Avatar de ced600
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Août 2006
    Messages
    3 364
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Août 2006
    Messages : 3 364
    Par défaut
    la shared memory me semble adapté. J'ai en tête des solutions moins propre mais c'est moins propre.

    Pour qu'un programme sache que quelque chose a changé, il n'a que deux moyen :
    - Il surveille la chose (donc en général un timer derrière).
    - Il attend que quelque chose lui dise qu'il y a eu du changement (interception, event, ou message d'un autre processus).

    Tu peux toujours essayer de t'amuser avec les interceptions, et aller voir en mémoire ce qu'il se passe lorsque tu reçois une interception. Si je ne me trompe pas, windows utilise PosX pour les interceptions.
    Bon courage si tu choisis cela (en Unix, ou Linux, c'est pas très compliqué, mais avec windows qui nous masque un peu tout cela ...)

    Un timer qui vérifie toutes les 500 ms me semble suffisant. Enfin cela dépend du temps de réaction que tu dois avoir.

  5. #5
    Expert confirmé

    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Septembre 2006
    Messages
    3 580
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Chef de projet NTIC
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Septembre 2006
    Messages : 3 580
    Par défaut
    salut

    j'ai posté hier un bout de code qui permet de faire de la shared memory
    (ca doit etre le thread interprocess... ou un truc comme cela, plutot
    recent dans la liste )

    Tu devrais trouver toutes les réponses à tes questions dans ce thread

    The Monz, Toulouse

  6. #6
    Membre éclairé
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    1 002
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 1 002
    Par défaut
    Merci à vous deux pour vos précieux conseils !

  7. #7
    Membre éclairé
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    1 002
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 1 002
    Par défaut
    Citation Envoyé par theMonz31 Voir le message
    salut

    j'ai posté hier un bout de code qui permet de faire de la shared memory
    (ca doit etre le thread interprocess... ou un truc comme cela, plutot
    recent dans la liste )

    Tu devrais trouver toutes les réponses à tes questions dans ce thread

    The Monz, Toulouse

    Hum... il n'y a pas moyen de faire du shared memory juste en utilisant l'API windows ?

    je crois que le mec utilise un hook non ?

Discussions similaires

  1. Réponses: 4
    Dernier message: 24/08/2009, 11h42
  2. Communication inter process
    Par thegitch dans le forum C#
    Réponses: 9
    Dernier message: 03/07/2009, 13h23
  3. Communication Inter Process C# C++
    Par Moustico dans le forum C++/CLI
    Réponses: 3
    Dernier message: 13/03/2009, 13h49
  4. votre avis (inter process)
    Par giova_fr dans le forum C#
    Réponses: 9
    Dernier message: 30/01/2008, 10h48
  5. WMI pour communication inter process
    Par dominoz dans le forum API, COM et SDKs
    Réponses: 5
    Dernier message: 20/08/2007, 13h53

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo