بسم الله الرحمان الرحيم والصلاة والسلام على أشرف المرسلين محمد صلى الله عليه وسلم
شرح عمل backgroundwork الذي يعمل في الخلفية ويجعل برنامجك خفيف جدا
المرفق : تحميل المشروع
شرح عمل backgroundwork الذي يعمل في الخلفية ويجعل برنامجك خفيف جدا
Private Sub Backgroundwork1_DoWork(ByVal sender As Object,
ByVal e As System.ComponentModel.DoWorkEventArgs) Handles BGW.DoWork
'هذه حلقة دوران لزيادة
القيمة
For i As Integer = 0 To 100
'مع أني متأكد من أنها
لن تنفع ولكن سأكتبها
'If Cancelled Then
' Exit Sub
'End If
'الأن ستنفع إن شاء الله
ولكن بعد القيام ببعض التعديلات
If Backgroundwork1.CancellationPending Then
e.Cancel = True
Exit Sub
End If
' AddValue(i) 'Progressbar
زيادة قيمة
'الآن سنزيد القيمة ولكن بغير طريقة
BGW.ReportProgress(i)
System.Threading.Thread.Sleep(100) 'تأخير العملية قليلاً
Next
End Sub
Private Sub BGW_ProgressChanged(ByVal sender As
Object, ByVal e As System.ComponentModel.ProgressChangedEventArgs) Handles
BGW.ProgressChanged
'BGW_DoWork في الحدث
' BGW.ReportProgress تلاحظ أننا استدعينا
'الذي بدوره يستدعي هذا الحدث ويمرر له وسيطة
نسبة التقدم
AddValue(e.ProgressPercentage)
End Sub
Private Sub BGW_RunWorkerCompleted(ByVal sender
As Object, ByVal e As System.ComponentModel.RunWorkerCompletedEventArgs)
Handles BGW.RunWorkerCompleted
'FinallyWork هذا
الحدث بدل
'يتم استدعاءه عند الانتهاء من العملية
If e.Cancelled Then
Me.Text = "نم إلغاء العملية"
Else
Me.Text = "انتهى التحميل
بنجاح"
End If
End Sub
End Class
المرفق : تحميل المشروع
ليست هناك تعليقات:
اضافة تعليق