(InvokeRequired & BeginInvoke(Deep Threading 3 - نسخة قابلة للطباعة +- منتدى فيجوال بيسك لكل العرب | منتدى المبرمجين العرب (http://vb4arb.com/vb) +-- قسم : الاقسام الاخرى (http://vb4arb.com/vb/forumdisplay.php?fid=74) +--- قسم : قسم المقالات العام (http://vb4arb.com/vb/forumdisplay.php?fid=85) +--- الموضوع : (InvokeRequired & BeginInvoke(Deep Threading 3 (/showthread.php?tid=5388) |
(InvokeRequired & BeginInvoke(Deep Threading 3 - RaggiTech - 08-10-12 كاتب الموضوع : SHADY_20075
بسم الله الرحمن الرحيم ولنكمل ما بدئناهانظر معى هذا الكود متابعتا لما سبق شرحه كود : private delegate void ChangeDelegate(); الجواب بسيط توجد داخل كل Control خاصية Property تدعى InvokeRequired و هي من نوع bool و تكون قيمتها ب False اذا كان الMain Thread هو الذي بقوم بتنفيذ InvokeRequired و تكون بtrue عندما تكون أي Thread أخرى ... اذاً يمكننا الان فهم الكود السابق ببساطة فكل الفكرة فيه تكمن في الif condition التي تستشف من يقوم بتنفيذ هذا الكود فإذا كان الMain Thread فسيتم تغيير الText باستخدام الText Property مباشرة أما اذا كانت thread اخرى فسيتم ارسال رسالة بواسطة PostMessage من خلال BeginInvoke ووضعها في الMessageQueue و هنا عندما يأتي دور الMain Thread في التنفيذ فانها ستقوم بتغيير الText بنفسها ونتابع سلسلة الدروس غدا انشاء الله نسالكم صالح الدعاء ولاتنسو الردود والاستفسارات للمتابعه معكم |