منتدى فيجوال بيسك لكل العرب | منتدى المبرمجين العرب

نسخة كاملة : كيف ممكن اوقف عدد كبير من BackgroundWorker دفعة واحدة
أنت حالياً تتصفح نسخة خفيفة من المنتدى . مشاهدة نسخة كاملة مع جميع الأشكال الجمالية .
سلام عليكم
بعد الصلاة على سيدنا محمد
كيف ممكن اوقف عدد 20 من BackgroundWorker
دفعة واحدة وشكراً
حسب ما قرأته في أحد المواقع

اولا
يجب تفعيل امكانية الإلغاء من خلال الخاصية WorkerSupportsCancellation بالقيمة True

ثانيا
يجب وضع تفقد الإلغاء داخل الحلقات او جمل التكرار مثل For وDo أو غيرها التي في الكود للخروج من العمل مثل
كود :
If BackgroundWorker1.CancellationPending Then Exit Sub

ثالثا
في تستخدم هذا الأمر في زر طلب الغاء العمل BackgroundWorker1.CancelAsync

وهذا يتم لكل BackgroundWorker
ايقاف Thread فيه بعض الخطورة احيانا و انت هنا تحتاج الي ما يسمي الخروج الأمن من هذا Thread
و غالبا في حالات مثل هذه الافضل لك ان يتم تنفيذ الكود في BackgroundWorker باستخدام Boolean فان كان True يتم التنفيذ و العكس صحيح