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 :

Problème backgroundworker et thread [Débutant]


Sujet :

VB.NET

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Candidat au Club
    Profil pro
    Inscrit en
    Janvier 2012
    Messages
    2
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2012
    Messages : 2
    Par défaut Problème backgroundworker et thread
    Bonjour à tous

    Voilà je chercher à faire un programme qui vérifie si un serveur est en ligne via un port, le problème ne vient pas de là mais plutôt du backgroundworker, en effet comme cette tâche est longue j'ai choisis d'utiliser le backgroundworker, mais j'ai un problème au moment d'afficher une picturebox. j'ai le message :
    Opération inter-threads non valide : le contrôle 'PictureBox2' a fait l'objet d'un accès à partir d'un thread autre que celui sur lequel il a été créé.
    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
    Imports System.Net.Sockets
    Public Class Form1
        Public Function CheckStatus()
            Dim tcpclient As New TcpClient
            Try
                tcpclient.Connect("adresseIP", 1000)
                Return True
            Catch Excep As Exception
                Return False
            End Try
        End Function
     
        Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
            PictureBox1.Hide()
            PictureBox2.Hide()
            BGW1.RunWorkerAsync()
     
        End Sub
     
        Private Sub BGW1_DoWork(ByVal sender As System.Object, ByVal e As System.ComponentModel.DoWorkEventArgs) Handles BGW1.DoWork
     
            If CheckStatus() = True Then
                PictureBox1.Show()
            Else
                PictureBox2.Show()
            End If
        End Sub
    End Class
    Si une personne aurai une solution

    Merci de vos réponses.

    pepsi95

  2. #2
    Membre expérimenté Avatar de AcidLines
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Février 2010
    Messages
    198
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Santé

    Informations forums :
    Inscription : Février 2010
    Messages : 198
    Par défaut
    Bonjour,

    Tu essayes de modifier ta pictureBox qui est dans le Thread de ta Form.
    Pour toucher au thread de ta form via un BGworker, il faut que tu passe par la méthode ProgressChanged ou runWorkerComplete.

    Un bon tutoriel :
    http://glarde.developpez.com/dotnet/bgworker/vb/

  3. #3
    Candidat au Club
    Profil pro
    Inscrit en
    Janvier 2012
    Messages
    2
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2012
    Messages : 2
    Par défaut
    Effectivement un RunWorkerCompleted résout mon problème, merci AcidLines

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

Discussions similaires

  1. Réponses: 1
    Dernier message: 08/08/2006, 15h39
  2. problème sur les threads et les sémaphores
    Par ramislebob dans le forum Windows
    Réponses: 1
    Dernier message: 29/06/2006, 11h52
  3. [C#] Problème sur un Thread
    Par bisounux dans le forum Windows Forms
    Réponses: 7
    Dernier message: 27/04/2006, 20h43
  4. Problème dans un thread
    Par BNS dans le forum MFC
    Réponses: 3
    Dernier message: 23/03/2006, 14h21
  5. Réponses: 5
    Dernier message: 10/05/2005, 10h22

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