Bonjour j'ai découvert ce controle pour faire des transferts de fichier via des sockets mais j'ai un problème ! (sans blague ^^)

Donc, en fait le problème vient que je veux montrer la progression du transfert à l'utilisateur avec ce controle et notamment sa procédure :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
 Private Sub Bgw_ProgressChanged(ByVal sender As Object, ByVal e As System.ComponentModel.ProgressChangedEventArgs) Handles Bgw.ProgressChanged
        Pb.Value = e.ProgressPercentage
    End Sub
Le problème c'est que j'appelle la méthode Bgw.RunWorkerAsync(Arguments) dans un autre thread que le thread principale (enfin je crois)
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
 Private Sub Client_Receive_String(ByVal Message As String, ByVal Sock As Socket) Handles Client.Receive_String
        Dim ret As String() = Split(Message, ControlChars.VerticalTab)
 
        Select Case ret(0)
            Case "GetOk"
                Dim file As New IO.FileInfo(T_Chemin.Text)
 
                Client.Send("Download" & ControlChars.VerticalTab & file.FullName & ControlChars.VerticalTab & file.Length)
 
                Arguments.Sck = Sock
                Arguments.Size = file.Length
 
                Bgw.RunWorkerAsync(Arguments)
        End Select
    End Sub
Et donc l'event Bgw_ProgressChanged plante et un appel interthread est crée sur la progressbar...

Comment remédier au problème ? Merci d'avance