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 :

gestion des exceptions dans backgroundworker


Sujet :

C#

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Mars 2003
    Messages
    217
    Détails du profil
    Informations forums :
    Inscription : Mars 2003
    Messages : 217
    Par défaut gestion des exceptions dans backgroundworker
    Salut,
    je fais appel à un backgroundworker pour traiter mes calculs. J'effectue des traitements des exceptions qui peuvent survenir. Dans dowork, j'ai ce traitement
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    try
                        {
     
                            cManage.runPLSModelSelectionFixedNbr(mdiP.dPLS.trainingData, int.Parse(txtNbrComponent.Text));
                        }
                        catch (Exception ex)
                        {
                            e.Cancel = true;
                            e.Result = ex;
                            return;
                        }
    Ensuite dans backgrounworkercompleted j'ai
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    if(e.Cancelled)
    {
    //traitement des exceptions
                        Exception ex = (Exception)e.Result;
                        MessageBox.Show(ex.Source + "\r\n" + ex.Message, "function Matlab error", MessageBoxButtons.OK,
                                MessageBoxIcon.Error);
    }
    Lors d'une exception, j'affiche le message d'erreur mais ensuite elle ferme la page où j'exécute backgroundworker. Comment peut on effectuer une prise en charge efficace des exceptions et des erreurs? comment faire après le message d'erreur que ma page ne ferme pas et que l'utilisateur puisse réeffectuer le calcul?
    merci pour votre aide

  2. #2
    Membre émérite
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Juillet 2007
    Messages
    693
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Consultant informatique

    Informations forums :
    Inscription : Juillet 2007
    Messages : 693
    Par défaut
    Bonjour,

    Peux-tu poster le code appelant le backgroundworker ?

  3. #3
    Membre confirmé
    Inscrit en
    Mars 2003
    Messages
    217
    Détails du profil
    Informations forums :
    Inscription : Mars 2003
    Messages : 217
    Par défaut
    ici le code du bouton start
    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
    if (cbbVariable.Text.Equals(""))
                {
                    MessageBox.Show("Please choose one variable", "Warning", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                    return;
                }
                if (txtIteration.Text.Equals("") || txtNumberNeural.Text.Equals(""))
                {
                    MessageBox.Show("Please insert a numerical value", "Warning", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                    return;
                }
                cManage = new Manager();
                selectedItem = cbbVariable.SelectedItem.ToString();
                lblProgress.Visible = true;
                lblProgress.Text = "Calculation in progress...";
                pgbPLS.Visible = true;
                timer1.Start();
                bgwBuild.RunWorkerAsync("partition");
    ici le code dan backgoundworkerComplete

    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
    case "partition":
                           lblProgress.Text = "Building a neural network model with " + cbbVariable.Text + " as the predicted variable. Please wait. \r\n";
     
                            nbr = mdiP.dPLS.modellingData.Columns.Count - 1;
                            nb1 = mdiP.dPLS.modellingData.Rows.Count;
                            lblProgress.Text += "Number of varibles= " + nbr + "\r\n Number of modelling observation= " + nb1 + "\r\n";
                            lblProgress.Text += "Calculation progressing...";
                            pgbPLS.Top = lblProgress.Bottom;
                            bgwBuild.RunWorkerAsync("runNeuralNetwork");
                            break;
                        case "runNeuralNetwork":
                            lblProgress.Text = "Building a Partial Least Squares model with " + cbbVariable.Text + " as the predicted variable. Please wait.";
                            nbr = mdiP.dPLS.modellingData.Columns.Count - 2;
                            nb1 = mdiP.dPLS.modellingData.Rows.Count;
                            lblProgress.Text = "Number of varibles= " + nbr + "\r\n Number of modelling observation= " + nb1 + "\r\n";
                            lblProgress.Text += "Calculation progressing...";
                            pgbPLS.Top = lblProgress.Bottom;
                            bgwBuild.RunWorkerAsync("runPLS");

  4. #4
    Membre émérite
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Juillet 2007
    Messages
    693
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Consultant informatique

    Informations forums :
    Inscription : Juillet 2007
    Messages : 693
    Par défaut
    Je ne vois qui pourrait provoquer la fermeture d'une page !

    Qu'est-ce que cManage = new Manager() ?

  5. #5
    Membre confirmé
    Inscrit en
    Mars 2003
    Messages
    217
    Détails du profil
    Informations forums :
    Inscription : Mars 2003
    Messages : 217
    Par défaut
    Manager est ma classe qui gère mes calculs. La fermeture de ma form fille arrive juste après l'affichage du messagebox

  6. #6
    Membre éprouvé
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Avril 2006
    Messages
    1 627
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2006
    Messages : 1 627
    Par défaut
    Arf, deux code du Completed différents, où se situe l'un par rapport à l'autre ?

    As tu suivi ton programme en breakpoint ? Possible qu'une exception soit levé derrière qui tue ta form ?

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

Discussions similaires

  1. [Data] Gestion des exceptions dans applications Spring Hibernate Struts
    Par coco-sup dans le forum Spring
    Réponses: 4
    Dernier message: 09/12/2012, 12h58
  2. Gestion des exceptions dans un BackgroundWorker
    Par Pacane dans le forum VB.NET
    Réponses: 0
    Dernier message: 21/01/2010, 20h38
  3. Gestion des exceptions dans JSP
    Par lolo_ici_et_la dans le forum Struts 2
    Réponses: 3
    Dernier message: 05/07/2009, 11h27
  4. [débutant] gestion des exceptions dans web.xml
    Par jgaslain dans le forum Servlets/JSP
    Réponses: 7
    Dernier message: 06/02/2007, 09h46
  5. [EXCEPTION] Gestion des Exceptions dans PL/SQL
    Par Titouf dans le forum PL/SQL
    Réponses: 4
    Dernier message: 08/02/2006, 00h46

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