سؤال

تخيل أن لديك ويندوز عملية التشغيل مع إعطاء الأولوية AboveNormal أن يبدأ عملية أخرى ب دون تحديد الأولوية.هو أولوية العملية ب الموروثة من أولويات العملية ؟ إذا ماذا ستكون الأولوية على عملية "ب" ؟ AboveNormal ، طبيعية أو آخر ؟

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

المحلول

إذا لم يتم تحديد أولوية من الدرجة هو الموروثة ، بعض الحالات.

فإنه يحدث عند عملية الاستدعاء في IDLE_PRIORITY_CLASS أو BELOW_NORMAL_PRIORITY فئة.وإلا فإنه يحصل NORMAL_PRIORITY_CLASS ما لم يحدد أثناء CreateProcess الاتصال.

MSDN يقول على dwCreationFlags من CreateProcess:

هذه المعلمة أيضا ضوابط العملية الجديدة ذات الأولوية الدرجة ، يستخدم لتحديد جدولة أولويات عملية المواضيع.للحصول على قائمة من القيم ، انظر GetPriorityClass.إذا كان أي من الأولوية الدرجة أعلام تم تحديد الأولوية الصف الافتراضي NORMAL_PRIORITY_CLASS ما لم الأولوية فئة من خلق عملية IDLE_PRIORITY_CLASS أو BELOW_NORMAL_PRIORITY_CLASS.في هذا حالة عملية طفل يتلقى الافتراضي الأولوية فئة من واصفا العملية.

الجواب ولذلك من الطبيعي الأولوية الدرجة.أساسا أي شيء فوق العادي لا ينتقل إلى الطفل.

نصائح أخرى

ومن وثائق CreateProcess :

<اقتباس فقرة> dwCreationFlags [في]

    الأعلام التي تتحكم في فئة الأفضلية وإنشاء هذه العملية. للحصول على قائمة القيم، انظر الأعلام إنشاء عملية.

    يتحكم هذه المعلمة أيضا فئة الأفضلية العملية الجديدة، والذي يستخدم لتحديد أولويات جدولة المواضيع للعملية. للحصول على قائمة القيم، انظر GetPriorityClass. إذا تم تحديد أي من أعلام فئة الأفضلية، والتخلف عن فئة الأفضلية لNORMAL_PRIORITY_CLASS إلا فئة الأفضلية من عملية خلق هي IDLE_PRIORITY_CLASS أو BELOW_NORMAL_PRIORITY_CLASS. في هذه الحالة، تحصل عملية تابعة فئة الأفضلية الافتراضية من عملية الاستدعاء.

وهكذا، في المثال الخاص بك، وعملية جديدة سيكون له الأفضلية العادية.

في Windows ليست موروثة أولوية العملية.

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