Probleme backgroundworker et inter-thread ??? [Résolu]

Signaler
Messages postés
26
Date d'inscription
jeudi 26 février 2009
Statut
Membre
Dernière intervention
28 février 2016
-
 Utilisateur anonyme -
bonjour a tous

jai une boucle a faire , pour copier des truc , mais ma form "freeze"

c'est pourquoi , je veux utiliser un "backgroundworker" , mais jai des erreurs "inter-thread"

je n'y connais pas grand chose , lol

voici la boucle

 For index = 1 To DataSetList.Tables("Table1").Rows.Count
            If ComboBoxType.Text = ("Dossier") Then
                My.Computer.FileSystem.CopyDirectory(ComboBoxFichierSource.Text, ComboBoxFichierCible.Text & "" & ComboBoxNomDuFichier.Text, FileIO.UIOption.AllDialogs)
            ElseIf ComboBoxType.Text = ("Fichier") Then
                My.Computer.FileSystem.CopyFile(ComboBoxFichierSource.Text, ComboBoxFichierCible.Text & "" & ComboBoxNomDuFichier.Text, FileIO.UIOption.AllDialogs)
            End If
            If DataSetList.Tables("Table1").Rows.Count = 0 Then
                MsgBox("Rien a ajouter")
                Exit Sub
            End If
            Dim row As DataRow = DataSetList.Tables("Table1").Rows(ComboBoxFichierSource.SelectedIndex)
            DataSetList.Tables("Table1").Rows.Remove(row)
        Next

pouver vous m'aidez svp
merci

6 réponses

Messages postés
26
Date d'inscription
jeudi 26 février 2009
Statut
Membre
Dernière intervention
28 février 2016

voila , j'ai trouver :) merci beaucoup

D'un point de vu sécurité il est interdit à un Thread de pouvoir modifier un composant graphique qu'il n'a pas crée lui-même. Ca permet d'éviter des conflit d'accès aux ressources.
Mais il y a moyen de supprimer cette sécurité :

CheckForIllegalCrossThreadCalls = false; pose cette ligne de code avant de faire le start de ton premier Thread et ca devrait marché sans pb !

Bonne chance

sur
http://www.developpez.net/forums/d169210/dotnet/developpement-windows/windows-forms/csharp-cross-thread-operation-not-valid/

merci :)
Messages postés
14799
Date d'inscription
vendredi 14 mars 2003
Statut
Modérateur
Dernière intervention
6 juin 2021
155
Bonjour,

Regardes de ce coté :
http://www.codeproject.com/Articles/15861/How-to-solve-quot-Cross-thread-operation-not-valid
http://www.developpez.net/forums/d169210/dotnet/developpement-windows/windows-forms/csharp-cross-thread-operation-not-valid/

---------------------------------------------------------------------
[list=ordered][*]Pour poser correctement une question et optimiser vos chances d'obtenir des réponses, pensez à lire le règlement CS, celui-ci pour bien poser votre question ou encore celui-ci pour les PFE et autres exercices[*]Quand vous postez un code, merci d'utiliser la coloration syntaxique (3ième icône en partant de la droite : )
[*]En VB.NET pensez à activer Option Explicit et Option Strict (propriété du projet) et à retirer l'import automatique de l'espace de nom Microsoft.VisualVasic (onglet Références dans les propriétés du projet).
[*]Si votre problème est résolu (et uniquement si c'est le cas), pensez à mettre "Réponse acceptée" sur le ou les messages qui vous ont aidés./list
---
Mon site
Messages postés
26
Date d'inscription
jeudi 26 février 2009
Statut
Membre
Dernière intervention
28 février 2016

merci je vais jeter un oeuil

Bonsoir,
CheckForIllegalCrossThreadCalls = false



Utilise plutôt un délégué à la place de cette horreur!
Messages postés
14799
Date d'inscription
vendredi 14 mars 2003
Statut
Modérateur
Dernière intervention
6 juin 2021
155
Bonjour,

Comme Banana32, je te conseil plutôt les Délégué, car le fait d'ignorer cette erreur, augmente sensiblement le risque d(incohérence dans ton programme.

Quand on utilise les threads, soit on le fait bien, soit on ne le fait pas.

---------------------------------------------------------------------
[list=ordered][*]Pour poser correctement une question et optimiser vos chances d'obtenir des réponses, pensez à lire le règlement CS, celui-ci pour bien poser votre question ou encore celui-ci pour les PFE et autres exercices[*]Quand vous postez un code, merci d'utiliser la coloration syntaxique (3ième icône en partant de la droite : )
[*]En VB.NET pensez à activer Option Explicit et Option Strict (propriété du projet) et à retirer l'import automatique de l'espace de nom Microsoft.VisualVasic (onglet Références dans les propriétés du projet).
[*]Si votre problème est résolu (et uniquement si c'est le cas), pensez à mettre "Réponse acceptée" sur le ou les messages qui vous ont aidés./list
---
Mon site

Bonsoir NHenry,
Merci d'avoir détaillé le problème plus calmement
Bonne nuit