شرح المراقب monitor في السي شارب

شرح  المراقب في  لغة  السي  شارب 

عند العمل على تطبيق محدد  وتكون به عدة معاملات  من ظمنها معاملات  حساسة  فمن الافضل للمطورين  اختيار المراقب .
ببساطة  المراقب  يوفر  السلامة لهذه التطبيقات يعمل  في نفس  الوقت لياكد ان سلامة المؤشر قيد العملية أي انه يعمل جنبا الى جنب مع معالجة البينات .
ان  تحدثنا عن المراقب فلا بد لنا من التحدث عن #القفل  فهو يرافق المراقب ابان العملية  لكي يقفل اي كود غير مناسب  للبرنامج  

مثال برمجي :

المخرج:


  في هذا  المثال  استخدمنا  القفل لتامين  الكائن ،  ونلاحظ انه  عند كل استدعاء  للميثود "testlock" فانه  يعطي  الاولوية  للمعاملات  التي تعامبة مع #القفل 

خلال 100 ميلي ثانية  يقوم الكومبايلر بطباعة المعاملات التابعة للقفل  مستخدما  الميثود "TestLock" مع كل مرة يقوم بطباعة النتيجة الاكثر منطقية  والتي تحمي  البرنامج من التعطل ،  وفي حالة  ما كان هناك  مدخل اخر  فان #القفل يوقف العملية  الى  حين  اعادة التطبيق للعمل من  جديد  .

المراقب:

يوفر المراقب آلية تزامن للوصول إلى الكائنات. ويمكن أن يتم ذلك عن طريق الحصول على قفل  المعطيات  في ان  واحد  ، المراقب لا يختلف  في تركيبته  البرمجية  عن القفل فقط له  تعاملات اكثر من القفل 
 عند  استخدام    الكونصول  يضمن لك  المراقب  عدم  وصول تعليمات اخرى للمؤشر  ما  لم  يتم السماح لها من قبل المبرمج   

يستخدم المراقب الكلاسات التالية  في  الكود  

  • Monitor.Enter 
  • Monitor.TryEnter
  • Monitor.Exit.





ابسط كود يكون كالتالي : 




المخرج :  




ملحوظة :  
 في نسخة السي  شارب  4  القفل والمراقب يستخدم الكلاسات التالية :  (_object,ref _lockTaken)

عند استخدام القفل او المراقب  فان  المؤشر يحدد قيمته تلقائيا  



=====




هام !!! :  
كلاس المراقب هي كلاسة ثابتة  ولا يمكن انشاء مثلها 

يستخدم كائن فئة "المراقب" الكلاسات التالية:"Monitor.TryEnter" و "Monitor.Exit". مرة واحدة لديك قفل ، يمكنك استخدام Monitor.Wait، Monitor.Pulse، و Monitor.PulseAll في الكلاسات . 
ويرتبط ذلك مع كائن عند الطلب.

وهو غير منضم، مما يعني أنه يمكن استدعاؤها مباشرة من أي سياق.

Post a Comment

0 Comments