06-10-12, 10:41 PM
كاتب الموضوع : BADRMEDIA
العنصر BackgroundWorker
أنه من العناصر الممتازة التنى جاءت به الدوت نت مع اصدار 2005 ولم يكن موجود من قبل
وهو امتداد لمفهوم عمل مسارات Threading لعمليات التطبيق الواحد
Private Sub BackgroundWorker1_DoWork(ByVal sender As System.Object, ByVal e As System.ComponentModel.DoWorkEventArgs) Handles BackgroundWorker1.DoWork
' Statement
End SubMe.BackgroundWorker1.RunWorkerAsync()Private Sub BackgroundWorker1_DoWork(ByVal sender As System.Object, ByVal e As System.ComponentModel.DoWorkEventArgs) Handles BackgroundWorker1.DoWork
For i As Integer = 0 To 100
Beep()
If i = 99 Then i = 0
Next
End SubPrivate Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Me.BackgroundWorker1.RunWorkerAsync()
End SubMe.BackgroundWorker1.WorkerSupportsCancellation = TruePrivate Sub BackgroundWorker1_DoWork(ByVal sender As System.Object, ByVal e As System.ComponentModel.DoWorkEventArgs) Handles BackgroundWorker1.DoWork
For I As Integer = 0 To 1000
If Me.BackgroundWorker1.CancellationPending Then
e.Cancel = True
Return
End If
System.Threading.Thread.Sleep(100)
Next
End SubMe.BackgroundWorker1.RunWorkerAsync()Me.BackgroundWorker1.CancelAsync()Me.BackgroundWorker1.WorkerSupportsCancellation = TruePrivate Sub BackgroundWorker1_DoWork(ByVal sender As System.Object, ByVal e As System.ComponentModel.DoWorkEventArgs) Handles BackgroundWorker1.DoWork
For I As Integer = 0 To 100
Me.BackgroundWorker1.ReportProgress(I)
System.Threading.Thread.Sleep(100)
Next
End SubSystem.Threading.Thread.Sleep(100)Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
Me.BackgroundWorker1.WorkerReportsProgress = True
Me.ProgressBar1.Minimum = 0
Me.ProgressBar1.Maximum = 100
End SubPrivate Sub BackgroundWorker1_ProgressChanged(ByVal sender As Object, ByVal e As System.ComponentModel.ProgressChangedEventArgs) Handles BackgroundWorker1.ProgressChanged
Me.ProgressBar1.Value = e.ProgressPercentage
End SubPrivate Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Me.ProgressBar1.Value = 0
Me.BackgroundWorker1.RunWorkerAsync()
End SubPrivate Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
Me.BackgroundWorker1.WorkerReportsProgress = True
Me.BackgroundWorker1.WorkerSupportsCancellation = True
Me.ProgressBar1.Minimum = 0
Me.ProgressBar1.Maximum = 100
End SubMe.BackgroundWorker1.WorkerSupportsCancellation = TruePrivate Sub BackgroundWorker1_DoWork(ByVal sender As System.Object, ByVal e As System.ComponentModel.DoWorkEventArgs) Handles BackgroundWorker1.DoWork
For I As Integer = 0 To 100
If Me.BackgroundWorker1.CancellationPending Then
e.Cancel = True
Return
End If
Me.BackgroundWorker1.ReportProgress(I)
System.Threading.Thread.Sleep(100)
Next
End SubPrivate Sub BackgroundWorker1_ProgressChanged(ByVal sender As Object, ByVal e As System.ComponentModel.ProgressChangedEventArgs) Handles BackgroundWorker1.ProgressChanged
Me.ProgressBar1.Value = e.ProgressPercentage
End SubPrivate Sub BackgroundWorker1_RunWorkerCompleted(ByVal sender As System.Object, ByVal e As System.ComponentModel.RunWorkerCompletedEventArgs) Handles BackgroundWorker1.RunWorkerCompleted
If Not (e.Error Is Nothing) Then
MessageBox.Show("حدث خطأ")
ElseIf e.Cancelled Then
MessageBox.Show("تم الالغاء")
Else
MessageBox.Show("تمت العملية")
End If
End SubPrivate Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Me.ProgressBar1.Value = 0
Me.BackgroundWorker1.RunWorkerAsync()
End SubPrivate Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
If Me.BackgroundWorker1.IsBusy Then
Me.BackgroundWorker1.CancelAsync()
End If
End SubMe.BackgroundWorker1.RunWorkerAsync()Private Sub BackgroundWorker1_DoWork(ByVal sender As System.Object, ByVal e As System.ComponentModel.DoWorkEventArgs) Handles BackgroundWorker1.DoWork
For I As Integer = 0 To CInt(e.Argument)
If Me.BackgroundWorker1.CancellationPending Then
e.Cancel = True
Return
End If
Me.BackgroundWorker1.ReportProgress(I)
System.Threading.Thread.Sleep(100)
Next
End SubPrivate Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Me.ProgressBar1.Value = 0
Me.BackgroundWorker1.RunWorkerAsync(100)
End Sub