Bonsoir J'essaye de threader une classe qui récupère les mail d'un serveur pop mais j'arrive à un problème :
Création de la classe
Après l'instanciation (Qui est tout a fait inutile =/), j'ai repris du code et retravaillé dessus donc j'ai une méthode
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 Imports System Imports System.Net.Sockets Imports System.Text Imports System.IO Imports System.ComponentModel Public Class Telechargement Public WithEvents bgw1 As System.ComponentModel.BackgroundWorker Dim Server As TcpClient Dim NetStrm As NetworkStream Dim RdStrm As StreamReader Public Sub New() bgw1 = New System.ComponentModel.BackgroundWorker bgw1.WorkerReportsProgress = True bgw1.WorkerSupportsCancellation = True AddHandler bgw1.DoWork, AddressOf bgw1_DoWork AddHandler bgw1.RunWorkerCompleted, AddressOf bgw1_RunWorkerCompleted AddHandler bgw1.ProgressChanged, AddressOf bgw1_ProgressChanged End Sub
connexion :
Donc là je débute la récupération des message je lance un thread
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 Public Sub connexion(ByVal hote As String, ByVal login As String, ByVal mdp As String) Blabla bgw1.RunWorkerAsync(nbmessages) Return nbmessages End Sub
Et là c'est le drame, je veux afficher mon mail au fur et a mesure, mais je voudrais (je suis feignant) ne pas créer d'évènement, je veux pouvoir réutiliser mon évènement
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9 Private Sub bgw1_DoWork(ByVal sender As Object, ByVal e As System.ComponentModel.DoWorkEventArgs) Handles bgw1.DoWork BlaBla Dim m As mail = miseenforme(msg) Boucle récupération bgw1.ReportProgress((i * 100 / e.Argument), m) fin boucle End Sub
Donc j'ai déclaré mon bgw en public Public WithEvents et instancié comme ceci dans ma fenetre (formulaire) :
Mais il m'est impossible de faire un handles ici (toujours dans mon formulaire)
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 Public WithEvents t As Telechargement
<<<< J'arrive a placer t parce que j'ai spécifié WithEvents sur "t As Telechargement" mais je n'ai aucun évènement derrière et pas moyen de placer bgw1 même en forcant
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 Private Sub bgw1_ProgressChanged(ByVal sender As Object, ByVal e As System.ComponentModel.ProgressChangedEventArgs) Handles t.
Donc je suis bloqué, ca m'embêterais de faire un RaiseEvent sur mon "Private Sub bgw1_ProgressChanged(ByVal sender As Object, ByVal e As Syste...." dans ma classe pour ensuite indiquer et lancer a ma feuille les données de % et les données
Partager