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 et Timer


Sujet :

VB.NET

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Développeur informatique
    Inscrit en
    Avril 2010
    Messages
    40
    Détails du profil
    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Avril 2010
    Messages : 40
    Par défaut BackgroundWorker et Timer
    Bonjour,
    j'ai le code suivant :
    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
     
    Public Class Form2
        Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
            Timer2.Interval = 10000
            Timer2.Start()
            Timer1.Interval = 500
            Timer1.Start()
        End Sub
        Private Delegate Function DlgMaFonction()
        Private Function MaFonction()
            If Me.InvokeRequired Then
                Return Me.Invoke(New DlgMaFonction(AddressOf MaFonction))
            End If
            ' Le code de ma fonction
            Fonction1()
        End Function
     
        Sub Fonction1()
            For i As Integer = 0 To 100000
                'Application.DoEvents()
                Label1.Text = "fonction 1 :" & i
            Next
        End Sub
     
        Private Sub BGW2_DoWork(ByVal sender As System.Object, ByVal e As System.ComponentModel.DoWorkEventArgs) Handles bgwDesign.DoWork
            MaFonction()
        End Sub
     
        Private Sub Timer2_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer2.Tick
            bgwDesign.RunWorkerAsync()
        End Sub
     
        Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick
            Label2.Text = Date.Now.Second
        End Sub
    End Class
    j'ai essayé de créer un backgroundworker pour executer une fonction en arreière plan mais le probleme avec ce code c'est que ma fonction [Fonction1]
    lorsqu'elle s'execute en arrière plan , il bloque l'exection de Timer1.

    Merci de m'aider sur ce sujet
    Cordialement

  2. #2
    Membre averti
    Développeur informatique
    Inscrit en
    Avril 2010
    Messages
    40
    Détails du profil
    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Avril 2010
    Messages : 40
    Par défaut
    ya t'il pas une solution ?

  3. #3
    Membre confirmé
    Homme Profil pro
    Ingénieur développement matériel électronique
    Inscrit en
    Mars 2008
    Messages
    109
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Ingénieur développement matériel électronique
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Mars 2008
    Messages : 109
    Par défaut
    Salut,
    Tu peux voir ce sujet, il a un code qui fonctionne :
    http://www.developpez.net/forums/d12...round-workers/

  4. #4
    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
    ton code :

    démarrage d'un timer
    timer.tick => démarrage d'un backgroundworker
    le backgroundworker appelle une fonction (qui ne retourne rien !?)
    cette fonction fait que si elle est appelée sur un autre thread (c'est le cas) elle s'appelle sur le thread principal puis appelle une méthode qui fait incrémenter un label
    or sur le thread principal l'interface n'est pas mise à jour pendant l'exécution de ton code

    donc ce que tu as fait n'as pas vraiment de sens
    il faudrait revoir tout ca ...
    Cours complets, tutos et autres FAQ ici : C# - VB.NET

Discussions similaires

  1. [Débutant] Timer et BackgroundWorker
    Par Sh4ke dans le forum C#
    Réponses: 2
    Dernier message: 28/06/2012, 18h47
  2. [horloge] conflit caractère / timer
    Par JeanJean dans le forum C
    Réponses: 10
    Dernier message: 09/05/2003, 23h47
  3. [] [Réseau] Anti-timer, anti-idle
    Par clonevince dans le forum VB 6 et antérieur
    Réponses: 4
    Dernier message: 15/01/2003, 22h19
  4. Timer de précision
    Par guigui dans le forum MFC
    Réponses: 1
    Dernier message: 04/12/2002, 15h21
  5. Timer en µsecondes
    Par Dagobert dans le forum x86 16-bits
    Réponses: 3
    Dernier message: 25/11/2002, 00h59

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