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

VB.NET Discussion :

[BackgroundWorker] en chaîne


Sujet :

VB.NET

  1. #1
    Membre éclairé Avatar de max44410
    Étudiant
    Inscrit en
    Juin 2003
    Messages
    426
    Détails du profil
    Informations personnelles :
    Âge : 43

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2003
    Messages : 426
    Par défaut [BackgroundWorker] en chaîne
    Bonjour,

    voila je suis en train de faire une application qui réalise une copie puis une suppression de fichiers. j'arrive a faire la copie sans aucun soucis. à la fin de la copie la méthode bgwCode_Completed est appelée. Dans cette méthode j'appel un autre BackgroudWorker :

    Declaration :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     Private WithEvents bgwCode As System.ComponentModel.BackgroundWorker
        Private WithEvents bgwAction As System.ComponentModel.BackgroundWorker
    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
    Private Sub bgwCode_Completed(ByVal sender As System.Object, ByVal e As System.ComponentModel.RunWorkerCompletedEventArgs) Handles bgwCode.RunWorkerCompleted
            ProgressBar.Value = 0
            If action.Equals("1") Then
    
                lbl_listBox_title.Text = "List of files copied :"
                'lbl_file_copied.Text = "Number of files copied :"
                lbl_num_file.Text = Str(cpFile) + " files"
    
                btn_scan.Enabled = True
                btn_copy.Text = "Copy"
            End If
    
            If action.Equals("2") Then
                lbl_progress.Text = "0% of deleted cache"
            End If
    
            If action.Equals("3") Then
                lbl_progress.Text = "0% of deleted not media files"
            End If
    
            If action.Equals("4") Then
                lbl_progress.Text = "0% of deleted not copied files"
            End If
    
            If Not action.Equals("1") Then
                bgwAction.RunWorkerAsync()
            End If
        End Sub
    Malheureusement j'ai une exception :

    System.Reflection.TargetInvocationException was unhandled
    Message="Exception has been thrown by the target of an invocation."
    Je ne sais pas si j'ai le droit d'appeler un autre backGroundWorker...
    Est ce que vous avez des remarques ??

    Merci

  2. #2
    Membre Expert
    Avatar de Aspic
    Homme Profil pro
    Étudiant
    Inscrit en
    Août 2005
    Messages
    3 905
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

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

    Informations forums :
    Inscription : Août 2005
    Messages : 3 905
    Par défaut
    Normalement tu ne peux pas appeller un autre BGW tans que le procédent n'est pas terminé. En gros ca se termine dans l'evenement Completed. Donc tu ne peux pas appeller l'autre dans cet event.
    Qui ne tente rien n'a rien !
    Ce qui ne nous tue pas nous rends plus fort !!
    Mon projet ZELDA en C++/Allegro
    http://www.tutoworld.com - Le Forum -
    Mes ressources Dotnet (cours, sources, tutos)
    --------------------------------------------
    + + =

    Ne pas oublier le Tag !

  3. #3
    Membre éclairé Avatar de max44410
    Étudiant
    Inscrit en
    Juin 2003
    Messages
    426
    Détails du profil
    Informations personnelles :
    Âge : 43

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2003
    Messages : 426
    Par défaut
    Est ce qu'il y a une solution ?? car meme si je créer un event dans le completed du bgw, je ne pense pas que cela va fonctionner étant donner que le completed n'est pas fini ?? non ??

    Sinon comment on créer un event avec la procedure qui va avec ??

    Merci

  4. #4
    Membre Expert
    Avatar de Aspic
    Homme Profil pro
    Étudiant
    Inscrit en
    Août 2005
    Messages
    3 905
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

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

    Informations forums :
    Inscription : Août 2005
    Messages : 3 905
    Par défaut
    Non mais pourquoi lancer un autre bgw alors que une seule suffit ? tu veux faire quoi ?
    Qui ne tente rien n'a rien !
    Ce qui ne nous tue pas nous rends plus fort !!
    Mon projet ZELDA en C++/Allegro
    http://www.tutoworld.com - Le Forum -
    Mes ressources Dotnet (cours, sources, tutos)
    --------------------------------------------
    + + =

    Ne pas oublier le Tag !

  5. #5
    Membre éclairé Avatar de max44410
    Étudiant
    Inscrit en
    Juin 2003
    Messages
    426
    Détails du profil
    Informations personnelles :
    Âge : 43

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2003
    Messages : 426
    Par défaut
    Citation Envoyé par Aspic
    Non mais pourquoi lancer un autre bgw alors que une seule suffit ? tu veux faire quoi ?
    Bah parce que je ne sais pas comment faire ... je n'ai pas vu d'exemple donc j'ai suivi ma logique ... lol

    Enfin bref je veux effectuer un traitement (une copie de fichier dans une boucle), puis une fois la copie terminé, effectuer une suppression de des fichiers sources de la copie.

    Si vous avez des exemples, je suis preneur.

    Merci

  6. #6
    Membre Expert
    Avatar de Aspic
    Homme Profil pro
    Étudiant
    Inscrit en
    Août 2005
    Messages
    3 905
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

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

    Informations forums :
    Inscription : Août 2005
    Messages : 3 905
    Par défaut
    Je te conseille donc de faire tes deux etapes dans le meme BGW en meme temps. En gros tu copies ton fichier puis tu le supprimes directement avec File.Delete("Chemin")
    Qui ne tente rien n'a rien !
    Ce qui ne nous tue pas nous rends plus fort !!
    Mon projet ZELDA en C++/Allegro
    http://www.tutoworld.com - Le Forum -
    Mes ressources Dotnet (cours, sources, tutos)
    --------------------------------------------
    + + =

    Ne pas oublier le Tag !

  7. #7
    Membre éclairé Avatar de max44410
    Étudiant
    Inscrit en
    Juin 2003
    Messages
    426
    Détails du profil
    Informations personnelles :
    Âge : 43

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2003
    Messages : 426
    Par défaut
    oui et non ...

    en fait pour la copie je boucle sur une arraylist de fichiers a copier. puis pour la suppression je boucle sur une autre arrayList de fichiers a supprimer.

    Le fichiers a supprimer peuvent etre differents des fichiers a copier.

    Est ce que dans mon traitement je peux faire quelque chose comme cela :

    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
     
     
    première boucle
    for ..... to arrayListcopy
     
    worker.ReportProgress(pourcentBvl1)
    copy file
     
    next
     
    worker.ReportProgress(0)
     
    deuxieme boucle
    for .... ot arraySupp
     
    worker.ReportProgress(pourcentBcl2)
    Delete file
     
    next
    Merci

  8. #8
    Membre Expert
    Avatar de Aspic
    Homme Profil pro
    Étudiant
    Inscrit en
    Août 2005
    Messages
    3 905
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

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

    Informations forums :
    Inscription : Août 2005
    Messages : 3 905
    Par défaut
    Biensur c'est possible mais alors pourquoi tes fichiers à copier ,ne sont pas les memes que tes fichiers à supprimer ??
    Qui ne tente rien n'a rien !
    Ce qui ne nous tue pas nous rends plus fort !!
    Mon projet ZELDA en C++/Allegro
    http://www.tutoworld.com - Le Forum -
    Mes ressources Dotnet (cours, sources, tutos)
    --------------------------------------------
    + + =

    Ne pas oublier le Tag !

  9. #9
    Membre éclairé Avatar de max44410
    Étudiant
    Inscrit en
    Juin 2003
    Messages
    426
    Détails du profil
    Informations personnelles :
    Âge : 43

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2003
    Messages : 426
    Par défaut
    En fait je propose plusieurs type de suppresion :

    - tous les fichiers
    - juste les fichiers multimedia
    - tous les fichiers sauf les fichiers mutlimedia
    - tous les fichiers sauf les fichiers copiés

    Bref ... voila pourquoi ...

    Je vais essayer le code tout de suite, je vous tiens au courant.

  10. #10
    Membre Expert
    Avatar de Aspic
    Homme Profil pro
    Étudiant
    Inscrit en
    Août 2005
    Messages
    3 905
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

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

    Informations forums :
    Inscription : Août 2005
    Messages : 3 905
    Par défaut
    Ok mais tu peux toujours faire un Select Case lors de la copiede tes fichiers et gérer la suppression... Enfin c'est toi qui voit ^^
    Qui ne tente rien n'a rien !
    Ce qui ne nous tue pas nous rends plus fort !!
    Mon projet ZELDA en C++/Allegro
    http://www.tutoworld.com - Le Forum -
    Mes ressources Dotnet (cours, sources, tutos)
    --------------------------------------------
    + + =

    Ne pas oublier le Tag !

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

Discussions similaires

  1. Réponses: 8
    Dernier message: 12/02/2013, 01h08
  2. Chaînes de caractères
    Par Zazeglu dans le forum C
    Réponses: 3
    Dernier message: 28/08/2003, 16h20
  3. Inverser une chaîne de caractères
    Par DBBB dans le forum Assembleur
    Réponses: 2
    Dernier message: 30/03/2003, 11h09
  4. Comptage de mots dans une chaîne
    Par kikinou dans le forum Pascal
    Réponses: 10
    Dernier message: 01/01/2003, 02h27
  5. Réponses: 3
    Dernier message: 09/05/2002, 01h39

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