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

Threads & Processus C++ Discussion :

Arrêt du programme suite à un thread


Sujet :

Threads & Processus C++

  1. #1
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2014
    Messages
    14
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : France, Loire (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Avril 2014
    Messages : 14
    Par défaut Arrêt du programme suite à un thread
    Bonjour et merci d'avance à ceux qui pourront m'aider,

    Je suis un étudiant, qui, dans le cadre d'un stage, doit reprendre et améliorer un programme de pilote d'un générateur de signaux TV et de mesures de ces signaux. Ayant fait un peu de C/C++ dans mes études, je possède les bases mais je n'ai jamais entendu parler des threads auparavant. Je m'excuse donc par avance si mes questions sont floues et/ou stupides.


    Ce programme a été édité il y a plus de 3 ans. Il marchait sur un poste mais au moment de le porter sur différents postes, les problèmes arrivent, notamment au niveau des Thread. Le programme doit traiter 2 threads, la thread principale, qui rafraichit le programme, et acquiert les mesures nécessaires. ainsi qu'une autre afin d'envoyer des données nécessaires aux mesures en continu au générateur de signaux.

    Le problème est que le programme s’arrête automatiquement après la fonction Start(); qui est sensée "démarrer" le thread d'envoi des données. Visual Studio 2005 m'indique que le programme ainsi que la thread Win32 se sont arrêtés avec le code 2. Après une recherche sur différents sites, je n'ai pas réussi a trouver ce que signifiait cette erreur.

    Merci de m'éclairer


    Ici, je déclare et paramètre la thread
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
     
    ref class ThreadParametre
    {
    private:
    	char *_commande;
     
    public:
        // Constructeur
        ThreadParametre(char *commande)
        {
            _commande = commande; //paramètre de la fonction utiliser lors du Thread
     
        }
        // Exécution de la méthode du thread
        void Envoi_Donnees()
        {
    	int RetValue(0);
    	Player ThePlayer;
    	static char argv[32][32];
    	char* pargv[32];
    	char* cmd= _commande;
    	char* pt = cmd;
     
     
    	// extract elemantary commands from the command string
    	int i = 0;
    	while (true)
    	{
    		pt = strstr(cmd, " ");		// find space
    		if (pt == 0)				// space not find
    		{
    			strcpy(argv[i++], cmd);	// last command
    			break;					// end of cmd
    		}
    		*pt = 0;					// end of string
    		strcpy(argv[i++], cmd);		// one command
    		pargv[i] = &argv[i][0];		// init pointer
     
    		*pt++;						// next command
    		strcpy(cmd, pt);			// erase previous command
    	}
    	if (RetValue==0)
    	{
    		try
    		{        
    			RetValue = ThePlayer.Play(i-1, pargv);
    			if (RetValue==-1)
    				exit(2);
     
    		}
    		catch(...)
    		{
    			RetValue = -1;
     
    		}
    	}
    	else
    		return;
        }
    };
    Et quand on lance le thread, ça quitte.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    f (button_OK->Text=="Changer")// si les limites du graph sont validés on peut activer le lancement des mesures.
    			{
    				button_lancer->Enabled=true;
    			}
    		else 
    			{
    			button_lancer->Enabled=false;//sinon on n'active pas le lancement des mesures
    			}
     
    		envoyer->Start(); //on démarre le thread

    Je vous envoie le .cpp complet.
    Fichiers attachés Fichiers attachés

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Stopper le programme avec un THREAD
    Par Mamat31 dans le forum Threads & Processus
    Réponses: 2
    Dernier message: 13/06/2007, 10h48
  2. Réponses: 3
    Dernier message: 25/04/2007, 13h21
  3. Réponses: 2
    Dernier message: 28/03/2007, 20h28
  4. terminer le programme depuis un thread
    Par Tymk dans le forum Threads & Processus
    Réponses: 6
    Dernier message: 04/02/2007, 17h05
  5. [C#]Arrêt du programme
    Par torNAdE dans le forum Windows Forms
    Réponses: 10
    Dernier message: 06/05/2006, 00h15

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