سؤال

هل من الآمن أن يكون هناك خيطان أو أكثر يستدعيان SetEvent الخاص بـ Win32 API على نفس معالج الأحداث غير المحمي بواسطة قسم مهم؟

هل كانت مفيدة؟

المحلول

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

نصائح أخرى

بافتراض أن لديك عدة سلاسل رسائل تنتظر نفس الحدث، وتقوم بتشغيل نفس الكود.

  1. إذا لم يقم الكود الخاص بك بمسح الحدث حتى الانتهاء من معالجته، فهذا يعني أن لديك CS فعليًا.نظرًا لأن الحدث يظل مُشارًا إليه حتى يتم مسحه (المعروف أيضًا باسم عدم إعادة الضبط التلقائي)، فإن وجود مؤشرات ترابط متعددة لا يفعل شيئًا سوى تدوير وحدة المعالجة المركزية.
  2. إذا قام الكود الخاص بك بمسحه في بداية المعالجة أو تم ضبط الحدث تلقائيًا، فسيكون لديك سلاسل رسائل متعددة تعمل بنفس الوظيفة، وهو أمر غير آمن إذا كانت هذه سلاسل الرسائل تشترك في أي شيء.

وعدم وجود قيود على الدعوة SetEvent من المواضيع متعددة.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top