معضلة وظيفة النوم WinAPI: سبات أطول من المتوقع
عند استدعاء وظيفة WinAPI Sleep بمعلمة 1، قد يواجه المستخدمون تأخيرات في مؤشر الترابط تجاوز المدة المقصودة. في الواقع، أدت سلسلة متكررة من 100 مكالمة نوم (1) إلى إجمالي وقت نوم يبلغ 1500 مللي ثانية، وهو أكبر بكثير من 100 مللي ثانية المنصوص عليها.
سبب النوم الممتد:
هذا السلوك متأصل في برنامج جدولة سلسلة رسائل Windows. إنه يعمل مع كم زمني، أو فترة محددة يمكن خلالها تنفيذ الخيط. يتم تقريب التأخيرات غير الصفرية بطبيعتها إلى أقرب كمية كاملة.
مشكلات النظام المعقولة:
على الرغم من أن السلوك الملحوظ نموذجي، إلا أنه قد يكون من المفيد استبعاده مشكلات النظام المحتملة التي قد تؤدي إلى تفاقم المشكلة:اعتبارات إضافية:
من الجدير بالذكر أن البرامج قيد التشغيل الأخرى يمكنها ضبط دقة المؤقت على مستوى النظام، مما قد يؤدي إلى حجم كمي أصغر. يمكن أن يفسر هذا الحالات التي يتم فيها الإبلاغ عن تأخيرات Sleep(1) ضمن الإطار الزمني المقصود وهو 1 مللي ثانية. يجب أن تكون دقة المؤقت الافتراضية في نظام التشغيل Windows 7 حوالي 15.6 مللي ثانية، وليس 1 مللي ثانية.تنصل: جميع الموارد المقدمة هي جزئيًا من الإنترنت. إذا كان هناك أي انتهاك لحقوق الطبع والنشر الخاصة بك أو الحقوق والمصالح الأخرى، فيرجى توضيح الأسباب التفصيلية وتقديم دليل على حقوق الطبع والنشر أو الحقوق والمصالح ثم إرسالها إلى البريد الإلكتروني: [email protected]. سوف نتعامل مع الأمر لك في أقرب وقت ممكن.
Copyright© 2022 湘ICP备2022001581号-3