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 :

Thread vs For


Sujet :

C#

  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Octobre 2010
    Messages
    166
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Octobre 2010
    Messages : 166
    Par défaut Thread vs For
    Bonjour

    je souhaiterais faire l'équivalent d'une boucle for avec un thread afin de libérer mon interface

    comment faire pour limiter le nombre de boucles ?
    comment faire passer des variables dans le thread pour faire la même chose que :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    for (int i = 0, i <10 , i++)
    {
         Console.WriteLine("bonjour numéro : " + i);
    }
    avez-vous un exemple ? car j'ai l'impression de mal m'y prendre avec mon thread

    merci

    @++

    KaloOopS

  2. #2
    Membre confirmé
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    206
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 206
    Par défaut
    Ne devrait tu pas plutôt exécuter ta boucle dans un thread....

    http://emerica.developpez.com/csharp/threads/

  3. #3
    Rédacteur/Modérateur


    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2004
    Messages
    19 875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Paris (Île de France)

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

    Informations forums :
    Inscription : Février 2004
    Messages : 19 875
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    Thread t = new Thread(MonTraitement);
    t.Start();
     
     
    ...
     
    void MonTraitement()
    {
        for (int i = 0, i <10 , i++)
        {
            Console.WriteLine("bonjour numéro : " + i);
        }
    }

  4. #4
    Membre confirmé
    Profil pro
    Inscrit en
    Octobre 2010
    Messages
    166
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Octobre 2010
    Messages : 166
    Par défaut
    tomlev, je viens d'essayer ton script mais ca ne fonctionne pas

    1- j'ai du mettre "static" devant le "void" pour ne plus avoir d'erreur au niveau de l'appel du thread

    2- mais maintenant, j'ai d'autres messages d'erreur dans la declaration du "for" :

    • Une variable locale nommée 'i' est déjà définie dans cette portée
    • Seuls une assignation, un appel, un incrément, un décrément et des expressions d'objet new peuvent être utilisés comme instruction
    • ; attendu (2 fois)


    voici mon bout de code

    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
    namespace ConsoleApplication1
    {
        class Program
        {
            static void Main(string[] args)
            {
                Thread t = new Thread(MonTraitement);
                t.Start();
                Console.Read();
            } 
     
            static void MonTraitement()
            {
                for (int i = 0, i < 10 , i++)
                {
                    Console.WriteLine("bonjour numéro : " + i);
                }
            }
        }
    }
    comprends pas ...

    @++

    KaloOopS

  5. #5
    Rédacteur
    Avatar de Nathanael Marchand
    Homme Profil pro
    Expert .Net So@t
    Inscrit en
    Octobre 2008
    Messages
    3 615
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Expert .Net So@t
    Secteur : Conseil

    Informations forums :
    Inscription : Octobre 2008
    Messages : 3 615
    Par défaut
    le séparateur des paramètre du for est un ; pas un ,

  6. #6
    Membre confirmé
    Profil pro
    Inscrit en
    Octobre 2010
    Messages
    166
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Octobre 2010
    Messages : 166
    Par défaut
    oops avais pas vu ... grrrrrrrr

    effectivement ca va mieux

    par contre nouveau probleme, je suis passé en WindowsForm avec une textbox (tb1)

    je souhaite la remplir avec les valeurs de mon thread, mais là nouveau message d'erreur

    Une référence d'objet est requise pour la propriété, la méthode ou le champ non statique 'WindowsFormsApplication1.Form1.tb1'
    comment faire ?

    car si je change le "static" comme dans mon code en console je me retrouve avec le probleme d'appel du thread

    heeeeelp !!!

  7. #7
    Membre confirmé
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    206
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 206
    Par défaut
    je dirai que pour remplir ton textbox au travers de ton thread il te faut recourir à l'usage d'un délégué (delegate) .

    http://www.codeproject.com/KB/cs/workerthread.aspx

  8. #8
    Membre confirmé
    Profil pro
    Inscrit en
    Octobre 2010
    Messages
    166
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Octobre 2010
    Messages : 166
    Par défaut
    ca marche !

    mici

    pourquoi faire simple quand on peut faire compliquer

    @++

    KaloOopS

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

Discussions similaires

  1. [Débutant] Threads boucle for
    Par stoukou dans le forum Concurrence et multi-thread
    Réponses: 10
    Dernier message: 24/01/2011, 09h47
  2. Réponses: 5
    Dernier message: 20/11/2009, 13h18
  3. Réponses: 3
    Dernier message: 16/05/2009, 23h40
  4. [C#] ArrayList, For each et threads
    Par Vlad_Oliv dans le forum C#
    Réponses: 6
    Dernier message: 09/07/2008, 09h47

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