كائنات المزامنة
You can استخدم a Mutex كائن إلى provide خاص الوصول إلى a مورد. Mutexتستخدم فئة موارد النظام المزيد Monitorالفئة، ولكن يمكن تنظيم عبر حدود مجال تطبيق ليتم استخدامها مع انتظار متعددة واستخدامها إلى بمزامنة عمليات جزئية في عمليات مختلفة. لمقارنة آليات المزامنة التي تمت إدارتها، راجع نظرة عامة حول الأوليات المزامنة.
أمثلة تعليمات برمجية، راجع الوثائق المرجعية ل Mutexالمنشئات.
تستخدم كائنات المزامنة
مؤشر ترابط استدعاء الدالة WaitOneالأسلوب لكائن المزامنة إلى طلب الملكية. كتل المكالمة حتى كائن المزامنة هو المتوفرة، أو حتى انقضاء الفاصل الزمني للمهلة اختيارية. الولاية كائن المزامنة هو إليه بصوت إذا مؤشر ترابط لا يملك ذلك.
تصدر مؤشر ترابط كائن مزامنة بواسطة استدعاء له ReleaseMutexأسلوب. تحتوي كائنات المزامنة مؤشر ترابط تقارب؛ التي هو، إصدارها كائن المزامنة بفقط بواسطة مؤشر الترابط الذي يملك عليه. حالة مؤشر ترابط بتحرير كائن مزامنة لا تمتلك، ApplicationExceptionهو تم طرح في مؤشر الترابط.
لأن Mutexفئة مشتقة من WaitHandle، يمكنك أيضا استدعاء الثابتة WaitAllأو WaitAnyوظائف WaitHandleإلى طلب ملكية Mutexبالاشتراك مع مقابض انتظار غير ذلك.
إذا كان يملك مؤشر ترابط على Mutex، مؤشر ترابط يمكنك تعيين نفس Mutexفي مكالمات طلب الانتظار المتكرر بدون حظر التنفيذ الخاص به؛ ومع ذلك، يجب تحرير Mutexعدة مرات إلى تحرير الملكية.
كائنات المزامنة الملغاة
في حالة إنهاء مؤشر ترابط دون تحرير Mutex، هو كائن المزامنة يقال إلى تكون مهجورة. Th هو غالباً ما يشير إلى خطأ برمجي خطيرة لأن مورد كائن المزامنة هو حماية قد تظل في الولاية inconsهوtent. في.NET Framework الإصدار 2.0، AbandonedMutexExceptionهو طرح في مؤشر الترابط التالي الذي تكتسب كائن المزامنة.
ملاحظة |
---|
في إصدارات.NET Framework 1.0 و 1.1، والملغاة Mutexهو تعيين حالة signaled ويحصل على مؤشر الترابط الانتظار التالي الملكية.في الولاية عدم وجود مؤشر ترابط هو الانتظار، Mutexيبقى في الولاية signaled.لم يتم طرح استثناء. |
في حالة من كائن مزامنة مستوى النظام، كائن مزامنة الملغاة قد يشير إلى أن تطبيق ما منتهي فجأة (على سبيل المثال، بواسطة باستخدام إدارة مهام Windows).
المحلية و النظام كائنات المزامنة
تكون كائنات المزامنة من اثنين أنواع: كائنات المزامنة المحلي و تسمى كائنات المزامنة للنظام. إذا قمت بإنشاء Mutexالكائن باستخدام الدالة الإنشائية يقبل اسماً، هو مرتبطة بكائن النظام التشغيل لهذا الاسم. يسمى نظام كائنات المزامنة مرئي من خلال نظام تشغيل ويمكن أن يتم استخدام إلى الأنشطة الخاصة بعمليات مزامنة. يمكنك إنشاء عدة Mutexالكائنات التي تمثل نفس مسمى كائن مزامنة النظام، والتي يمكنك استخدامها OpenExistingأسلوب إلى مفتوح موجود يسمى نظام كائن المزامنة.
موجود كائن مزامنة محلي فقط داخل الخاص بك عملية. ويمكن استخدامه بأي مؤشر ترابط في العملية الخاصة بك يحتوي على مرجع إلى محلي Mutexالكائن. كل Mutexهو منفصل المحلي كائن المزامنة.
الأمان عنصر تحكم الوصول لكائنات المزامنة للنظام
يوفر الإصدار 2.0 من برنامج.NET Framework إمكانية الاستعلام وقم بتعيين الوصول ل Windows عنصر تحكم الالأمان لكائنات النظام المسمى. حماية النظام الكائنات المزامنة من لحظة إنشاء هو مستحسن بسبب الكائنات النظام العمومية ولذلك يمكن أن يكون مؤمناً بواسطة تعليمات برمجية غير الخاصة بك.
للحصول تشغيل المعلومات حول الأمان التحكم بالوصول لكائنات المزامنة، راجع MutexSecurityو MutexAccessRuleفئات، MutexRightsالتعداد، GetAccessControl، SetAccessControl، و OpenExistingوظائف Mutexفئة، و Mutex(Boolean, String, Boolean%, MutexSecurity)المنشئ.
راجع أيضًا:
المرجع
Mutex
المبادئ
عمليات جزئية و مؤشر الترابط التشعبي