c# SerialPort Invoke EventHandler probleme
Répondre à la discussion
Affichage des résultats 1 à 5 sur 5

c# SerialPort Invoke EventHandler probleme



  1. #1
    invitec871b1d7

    c# SerialPort Invoke EventHandler probleme


    ------

    salut a tous !
    voila sa fait depuis un bon moment que je suis entrain de chercher comment résoudre mon petit problème
    j'arrive pas a fermé ma form , j'ai l'impression qu'un sous programme tourne encore c pour sa, sa bloque et sa sort pas
    je vous laisse avec le code, je ne sais pas ce qui manque :
    Code:
    using System;
    using System.Collections.Generic;
    using System.ComponentModel;
    using System.Data;
    using System.Drawing;
    using System.Linq;
    using System.Text;
    using System.Windows.Forms;
    using System.Threading;
    namespace projet1
    {
        public partial class Form1 : Form
        {
            string h;
            int j = 0;
            
            public Form1() // constructeur
            {
                InitializeComponent();
                try
                {
                    serialPort1.Open();
                }
                catch (Exception ex )
                {
                    MessageBox.Show(ex.Message);
                }
               
            }
           
            private  void DisplayText(object sender, EventArgs e)
            {
                h = serialPort1.ReadLine();
                if (h!= string.Empty)
                {
                    textBox1.AppendText("valeur N° " + j++.ToString() + " : " + h + "\r\n");
                    serialPort1.DiscardInBuffer(); // clear buffer 
                    textBox1.ScrollToCaret();     //  focus sur la derniere valeur 
                }
            }
            
            private void serialPort1_DataReceived(object sender, System.IO.Ports.SerialDataReceivedEventArgs e)
            {
                this.Invoke(new EventHandler(DisplayText));
            }
            
            private void Form1_FormClosing(object sender, FormClosingEventArgs e)
            {
                if (serialPort1.IsOpen) serialPort1.Close();   
            }
    
            
    
           
        }
    }

    -----

  2. #2
    invited1c1a33e

    Re : c# SerialPort Invoke EventHandler probleme

    Bonjour, je pense que vous pouvez isoler le problème en utilisant System.Diagnostics et en ajoutant des Debug.WriteLine() à chaque entrée et sortie de fonction. En l'occurrence, ici ce serait dans Form1_FormClosing()

    Vous pouvez également utiliser le débogueur pas à pas, ce qui demande moins de préparation mais est un peu plus lent.

    Ce serait utile de nous expliquer si le programme fonctionne avant de bloquer à la fermeture.

  3. #3
    invitec871b1d7

    Re : c# SerialPort Invoke EventHandler probleme

    bonjour !
    merci pour votre réponse, mon programme marche bien je reçoit ma donnée sur port série mais quand je quitte sa bloque

  4. #4
    invited1c1a33e

    Re : c# SerialPort Invoke EventHandler probleme

    J'ai un peu regardé, apparemment c'est parce que Close() attend la fin des évènements série. Il faut donc l'appeler sur une thread différente.

    http://msdn.microsoft.com/fr-fr/libr...rts.serialport
    http://csharpfeeds.com/post/2126/Top..._Hamilton.aspx

  5. A voir en vidéo sur Futura
  6. #5
    invitec871b1d7

    Re : c# SerialPort Invoke EventHandler probleme

    ohh merci sa fait plaisir voila la réponse pour les gens qui ont u le mémé problème :

    private void Form1_FormClosing(object sender, FormClosingEventArgs e)
    {
    if (serialPort1.IsOpen)
    {
    this.Invoke(new EventHandler(delegate
    {
    serialPort1.Close();
    }));
    }
    }

Discussions similaires

  1. Etude de fonctions et problème (qui me pose problème ahah)
    Par invitecf3c44f7 dans le forum Mathématiques du collège et du lycée
    Réponses: 4
    Dernier message: 12/10/2011, 19h54
  2. Problème adware.agent.NGZ et problème d'ouverture de mes pages IE
    Par invite6c8f34b5 dans le forum Sécurité et malwares : désinfectez votre machine
    Réponses: 8
    Dernier message: 03/08/2011, 21h03
  3. Réponses: 11
    Dernier message: 26/05/2011, 13h27
  4. problème avec un lecteur mp4(le problème vient de l'ordinateur)
    Par inviteaca1b987 dans le forum Matériel - Hardware
    Réponses: 3
    Dernier message: 29/10/2007, 17h53