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 :

Progression d'un thread ?


Sujet :

C#

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2006
    Messages
    256
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Janvier 2006
    Messages : 256
    Par défaut Progression d'un thread ?
    Bonjour,

    Voici mon problème, j'ai deux classes : thread principal de mon formulaire et une classe avec mes fonctions de traitement. Dans ma seconde classe j'ai crée un thread effectuant des copies de dossiers, fichiers. Ainsi je voudrais savoiir comment faire pour que ce thread communique avec mon thread principal pour accéder à mes controles WinForm ?

    Merci.

  2. #2
    Expert confirmé

    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Septembre 2006
    Messages
    3 580
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Chef de projet NTIC
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Septembre 2006
    Messages : 3 580
    Par défaut
    sujet plusieurs fois traités

    Regarde du coté des delegates et fait une recherche sur le forum ici

    The Monz, Toulouse

  3. #3
    Membre confirmé
    Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2006
    Messages
    256
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Janvier 2006
    Messages : 256
    Par défaut
    Citation Envoyé par theMonz31 Voir le message
    sujet plusieurs fois traités

    Regarde du coté des delegates et fait une recherche sur le forum ici

    The Monz, Toulouse
    ok, effectivement j'ai trouvé plusieurs sujets traitant de mon problème mais je voulais savoir pourquoi je ne peux pas déclarer la méthode "Invoke" ?

    Ma déclaration :
    Invoke exemple=new Invoke();

    Je fais ça pour appeler un délégué.

    Faut il ajouter une référence ?

  4. #4
    Expert confirmé

    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Septembre 2006
    Messages
    3 580
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Chef de projet NTIC
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Septembre 2006
    Messages : 3 580
    Par défaut
    tu ne peux pas parce que ce n'est pas ainsi qu'on fait pour declarer un delegue

    Si tu regardes les nombreux thread, tu auras pleins d'explications sur comment faire, utilise Invoke, ou beginInvoke, etc...

    The Monz, Toulouse

  5. #5
    Membre confirmé
    Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2006
    Messages
    256
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Janvier 2006
    Messages : 256
    Par défaut
    Citation Envoyé par theMonz31 Voir le message
    tu ne peux pas parce que ce n'est pas ainsi qu'on fait pour declarer un delegue

    Si tu regardes les nombreux thread, tu auras pleins d'explications sur comment faire, utilise Invoke, ou beginInvoke, etc...

    The Monz, Toulouse
    En lisant les différents articles du forum, voilà ce que j'ai fait.

    Dans mon thread de traitement
    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
     
    // déclération du délégué
    private delegate void aff_progression();
     
    aff_progression prg_copie;
    prg_copie = new aff_progression(progression);
     
    // procédure de copie
     
    private void CopyDir(string sourceDir, string destDir )
            {
                try
                {
                    // mise en forme des chemins d'accés
                    sourceDir.Replace("\\", "/");
                    destDir.Replace("\\", "/");
     
                    // process de copie
                    DirectoryInfo dir = new DirectoryInfo(sourceDir); if (dir.Exists)
                    {
                        string realDestDir;
                        if (dir.Root.Name != dir.Name)
                        {
                            realDestDir = Path.Combine(destDir, dir.Name);
                            if (!Directory.Exists(realDestDir))
                                Directory.CreateDirectory(realDestDir);
                        }
                        else realDestDir = destDir;
                        foreach (string d in Directory.GetDirectories(sourceDir))
                            CopyDir(d, realDestDir);
                        foreach (string file in Directory.GetFiles(sourceDir))
                        {
                            string fileNameDest = Path.Combine(realDestDir, Path.GetFileName(file));
                            //if (!File.Exists(fileNameDest))
     
                            File.Copy(file, fileNameDest, true);
                            File_text = file;
     
                           // appel de la fonction déléguée
     
                            prg_copie();
                        }
                    }
                }
                catch(ArgumentException argEx)
                {
                    etat = "Erreur :" + argEx.Message;
                }
            }
     
    private void progression()
            {
                // exec=instance de mon thread principal ( formulaire )
                exec.progression_copie(application_text, File_text);
            }
    Fonction d'affichage dans mon thread principal qui malheureusement ne fait rien sur ma form, pourquoi ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    public void progression_copie(string prog, string fic)
            {
                this.appli.Text=prog;
                this.fichier.Text=fic;
            }

  6. #6
    Expert confirmé
    Avatar de ced600
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Août 2006
    Messages
    3 364
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Août 2006
    Messages : 3 364
    Par défaut
    Vu que l'on ne sait pas ce qu'est fichier, ni comment tu déclares File_text, on ne peut pas te dire pourquoi cela ne marche pas.

Discussions similaires

  1. Progress Dialog avec thread
    Par ing_ndjana dans le forum Composants graphiques
    Réponses: 7
    Dernier message: 23/06/2014, 16h07
  2. Progress bar et thread
    Par Invité dans le forum C#
    Réponses: 2
    Dernier message: 21/02/2012, 22h49
  3. Afficher la progression d'un thread.
    Par Pynouz dans le forum ASP.NET Ajax
    Réponses: 2
    Dernier message: 24/10/2011, 18h04
  4. Affichage de la progression d'un thread
    Par olithill dans le forum MFC
    Réponses: 7
    Dernier message: 20/08/2006, 09h06
  5. progress et thread
    Par thony76 dans le forum Visual C++
    Réponses: 6
    Dernier message: 01/08/2006, 11h32

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