سؤال

إذا كان التطبيق مستهدفًا على Windows Vista أو لاحقًا ، فهل يمكننا استبدال الجميع الأقسام الحرجة مع أقفال SRW؟ نظرًا لأن القسم الحرج حصري بشكل متبادل ، فالاستخدام يعادل أقفال SRW في الوضع الحصري ، أليس كذلك؟ وفقًا لـ MSDN ، يتم تحسين SRW للسرعة والمساحة. هل هناك أي عيب للقيام بذلك؟ لست متأكدًا من كيفية تنفيذ CS و SRW داخليًا بواسطة Microsoft.

شكرًا!

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

المحلول

انظر كتاب Joe Duffy "البرمجة المتزامنة على Windows" ، ص 289.

الإجابة المختصرة على سؤالك هي "تقريبا". هناك دلالات مع Criticed_section المكتسبة بشكل متكرر والتي تختلف عن SRWL. إذا استفاد برنامجك من هذه الخصائص للأقسام الحرجة لـ Win32 ، فلا يمكنك التبديل بالجملة إلى SRWL بسهولة. ومع ذلك ، يمكنك لف SRWL في غلاف لتوفير CS مثل الدلالات ، ولكن هناك مجموعة من التفاصيل الدقيقة في القيام بذلك ، لذلك من الأفضل أن تتمسك بـ CS إذا كنت تعتمد على هذا السلوك.

مقال كيني كير يصف القليل عن كيفية تنفيذ كلاهما داخليًا.

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