Tableau de BackgroundWorker
bonjour a tous,
j'essai de mettre en place un tableau de backgroundworker mais j'ai un peu de mal étant donné ma petite connaissance a ce sujet.
J'ai le code suivant, qui crée des labels, progressbar et backgroundworker:
Code:
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 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79
|
Imports System.ComponentModel
Imports System.Threading
Public Class Form1
Dim pbTab() As ProgressBar
Dim lbTab() As Label
Dim bwTab() As BackgroundWorker
Dim NbThread As Integer = 5
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
Dim b1 As New Panel
b1.Size = New Drawing.Size(470, 370)
b1.AutoScroll = True
Me.AutoScroll = True
Me.Controls.Add(b1)
Dim x As Integer = 140
Dim y As Integer = 20
ReDim pbTab(NbThread)
ReDim lbTab(NbThread)
ReDim bwTab(NbThread)
Dim Names As ArrayList = New ArrayList({"Toto", "Titi", "Tata", "Tutu", "Toutou", "Teuteu"})
For i = 0 To NbThread
pbTab(i) = New ProgressBar
lbTab(i) = New Label
bwTab(i) = New BackgroundWorker
bwTab(i).WorkerReportsProgress = True
AddHandler bwTab(i).DoWork, AddressOf bwTab_DoWork
AddHandler bwTab(i).ProgressChanged, AddressOf bwTab_ProgressChanged
AddHandler bwTab(i).RunWorkerCompleted, AddressOf bwTab_RunWorkerCompleted
pbTab(i).Style = ProgressBarStyle.Blocks
pbTab(i).Maximum = 100
pbTab(i).Size = New Drawing.Size(300, 20)
lbTab(i).Size = New Drawing.Size(150, 20)
pbTab(i).Location = New System.Drawing.Point(x, y)
lbTab(i).Location = New System.Drawing.Point(x - 120, y)
lbTab(i).Text = Names(i)
y = y + 30
b1.Controls.Add(pbTab(i))
b1.Controls.Add(lbTab(i))
bwTab(i).RunWorkerAsync(i)
Next i
End Sub
Private Sub bwTab_DoWork(ByVal sender As System.Object, ByVal e As System.ComponentModel.DoWorkEventArgs)
Trace.WriteLine("Thread : " & e.Argument & " started...")
bwTab(e.Argument).ReportProgress(e.Argument)
End Sub
Private Sub bwTab_ProgressChanged(ByVal sender As Object, ByVal e As System.ComponentModel.ProgressChangedEventArgs)
End Sub
Private Sub bwTab_RunWorkerCompleted(ByVal sender As Object, ByVal e As System.ComponentModel.RunWorkerCompletedEventArgs)
Trace.WriteLine("Thread finished")
End Sub
End Class |
j'ai un petit problème concernant l'affichage de la progression avec les progressbar. :( et la, je sèche.
Quelqu'un pourrait me donner une piste si mon projet et faisaible bien sur.
Merci a tous ! :ccool: