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 :

mon premier thread


Sujet :

VB.NET

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éprouvé
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    1 249
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 1 249
    Par défaut mon premier thread
    Bonjour,

    je suis entrain de créer mon premier thread .

    J'ai une fenetre dans laquelle je change la valeur d'une texte box puis je fais une tempo de 2 secondes avant de fermer ma fenetre
    => si je n'utilise pas de thread, ma texbox devient un champ blanc et vide

    voici ma classe :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    Public Class ThreadTimer
     	private pTimer As Integer
     
     	Sub New(myTimer As Integer)
     		pTimer = myTimer
     	End Sub
     
     	Public Sub Main()
    		Thread.Sleep(pTimer) ' bloque le programe pendant 1sec
    	End sub
    End Class
    voici comment j'utilise mon thread
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
        	Me.label1.Text = "Vérification terminée"
     
    		Dim myObjThread As ThreadTimer = New ThreadTimer(2000) 'tempo de 2 sec
    		Dim t As Thread = New Thread(AddressOf myObjThread.Main)
    		t.Start
     
        	While t.ThreadState <> ThreadState.Stopped
           		Application.DoEvents()
           	End while
     
        	Me.Close
    est-ce que c'est bien comme ça qu'il fallait faire ?

  2. #2
    Expert éminent Avatar de Pol63
    Homme Profil pro
    .NET / SQL SERVER
    Inscrit en
    Avril 2007
    Messages
    14 197
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : .NET / SQL SERVER

    Informations forums :
    Inscription : Avril 2007
    Messages : 14 197
    Par défaut
    mouais ... c'est se compliquer la vie ... et avec du code moyennement propre


    un simple
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    "verification terminée"
    system.threading.thread.sleep(2000)
    me.close
    aurait suffit vu le cas
    dans le pire des cas un timer qui ferait me.close
    Cours complets, tutos et autres FAQ ici : C# - VB.NET

  3. #3
    Membre éprouvé
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    1 249
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 1 249
    Par défaut
    sperot51, ta soution ne fonctionne pas car comme je l'ai dit precedemment :
    Citation Envoyé par Emcy Voir le message
    J'ai une fenetre dans laquelle je change la valeur d'une texte box puis je fais une tempo de 2 secondes avant de fermer ma fenetre
    => si je n'utilise pas de thread, ma texbox devient un champ blanc et vide
    => si on fait un sleep dans le programme principal, ça bloque le rafraichissement de la fenetre principale (c'est pourquoi ma textbox devient blanche)...

    j'ai modifié un peu mon programme pour que ça soit plus propre :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    Sub StartTempo(myTimer As Integer)
    		Dim t As Thread
    		Dim myObjThread As ThreadTimer
     
    		myObjThread = New ThreadTimer(myTimer) 'tempo de 2 sec
    		t = New Thread(AddressOf myObjThread.Main)
    		t.Start
     
        	While t.ThreadState <> ThreadState.Stopped
           		Application.DoEvents()
           	End while	
    End Sub
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
        	Me.label1.Text = "Vérification terminée"
            StartTempo(2000)
     
        	Me.Close

  4. #4
    Expert confirmé
    Avatar de smyley
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    6 270
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 6 270
    Par défaut
    Et si tu appelais Application.DoEvents juste après avoir changé le contenu de ta textBox ?

  5. #5
    Membre éprouvé
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    1 249
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 1 249
    Par défaut
    ben la je comprends plus j'ai rajouté des fonctions dans mon programme et maintenant la textbox agi normalement avec system.threading.thread.sleep(2000) meme sans Application.DoEvents()

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

Discussions similaires

  1. [JSF] mon premier JSF:Cannot find FacesContext
    Par anitshka dans le forum JSF
    Réponses: 15
    Dernier message: 24/08/2007, 18h19
  2. [Débutant] Mon premier programme: rien ne va...
    Par vincent0 dans le forum OpenGL
    Réponses: 10
    Dernier message: 02/08/2005, 13h59
  3. [JSF] mon premier custom component
    Par anitshka dans le forum JSF
    Réponses: 5
    Dernier message: 14/06/2005, 13h31
  4. [debutant]Mon premier prog OpenGL
    Par Revan777 dans le forum OpenGL
    Réponses: 5
    Dernier message: 04/04/2005, 17h40

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