الثلاثاء، 2 ديسمبر 2014

شرح لوظيفة 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



المرفق :   تحميل المشروع

ليست هناك تعليقات:

اضافة تعليق

جميع الحقوق محفوظة © 2013 مدونة مشاريعنا