تقييم الموضوع :
  • 0 أصوات - بمعدل 0
  • 1
  • 2
  • 3
  • 4
  • 5
معلومة --- BackgroundWorker
#5
بالطبع اتضحت الرؤيا لك الآن أكثر وأكثر


تعال نزيد من بعض التلميحات حول الموضوع


نضع هذه الخصائص فى حدث تحميل الفورم


كود :
Private 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 Sub


لقد أزدنا فى حدث التحميل أن نشطنا خاصية WorkerSupportsCancellation للعنصر


كود :
Me.BackgroundWorker1.WorkerSupportsCancellation = True


==========================================

نجعل الكود للحدث DoWork


كود :
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
If Me.BackgroundWorker1.CancellationPending Then
e.Cancel = True
Return
End If
Me.BackgroundWorker1.ReportProgress(I)
System.Threading.Thread.Sleep(100)
Next

End Sub

============================================

الحدث ProgressChanged كما هو


كود :
Private Sub BackgroundWorker1_ProgressChanged(ByVal sender As Object, ByVal e As System.ComponentModel.ProgressChangedEventArgs) Handles BackgroundWorker1.ProgressChanged
Me.ProgressBar1.Value = e.ProgressPercentage
End Sub



================================================


جاء دور حدث جديد وهو RunWorkerCompleted ويتم فى حالة المهمة انتهت أو توقفت



كود :
Private 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 Sub
الكود واضح وما يحتاج شرح


=====================================




كود :
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click

Me.ProgressBar1.Value = 0
Me.BackgroundWorker1.RunWorkerAsync()

End Sub

حدث الزر Button2 الخاص بالغاء العملية


كود :
Private 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 Sub



شغل التطبيق واستمتع


}}}
تم الشكر بواسطة:


الردود في هذا الموضوع
معلومة --- BackgroundWorker - بواسطة Raggi Tech - 06-10-12, 10:41 PM
معلومة --- BackgroundWorker - بواسطة Raggi Tech - 06-10-12, 10:41 PM
معلومة --- BackgroundWorker - بواسطة Raggi Tech - 06-10-12, 10:41 PM
معلومة --- BackgroundWorker - بواسطة Raggi Tech - 06-10-12, 10:42 PM
معلومة --- BackgroundWorker - بواسطة Raggi Tech - 06-10-12, 10:42 PM
معلومة --- BackgroundWorker - بواسطة Raggi Tech - 06-10-12, 10:42 PM


التنقل السريع :


يقوم بقرائة الموضوع: بالاضافة الى ( 1 ) ضيف كريم