أنت غير متصل حاليًا، وفي انتظار الإنترنت الخاص بك ليقوم بإعادة الاتصال

كيفية تعديل أفضلية عملية التطبيق shelled مع Visual FoxPro

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

193846
الموجز
تحديد أولوية العملية كيفية جدولة التنفيذ الخاص به بواسطة kernel Win32. تنفيذ العمليات لديها أفضلية الكبرى أسرع من العمليات بأفضلية أقل بذلك. توضح هذه المقالة كيفية تعديل أفضلية عملية التطبيق shelled.
معلومات أخرى
يدعم Win32 الفئات الأولوية الأربعة التالية:
  • خامل
  • عادي
  • عالي
  • الوقت الحقيقي
خامل هي أفضلية الصحيح تطبيقات مراقبة النظام أو شاشات التوقف.

فئة الأفضلية العادية هو الافتراضي يشير إلى عملية مع لم احتياجات الجدولة خاص.

يشير ذات الأولوية العليا إلى عملية تنفذ المهام الهامة من خلال الوقت تتطلب للتنفيذ الفوري لكي يعمل بشكل صحيح. تتجاوز مؤشرات ترابط لعملية فئة ذات الأولوية مؤشرات ترابط العمليات فئة الأفضلية العادية أو المعطلة. مثال هو قائمة المهام Windows يجب أن يستجيب بسرعة عند استدعائه من قبل المستخدم بغض النظر عن التحميل على نظام التشغيل. استخدام العناية شديد عند استخدام فئة ذات أولوية عليا لأنه يمكن استخدام فئة ذات الأولوية التطبيق منضم CPU الدورات المتوفرة تقريباً كافة.

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

يتم تعيين الأولوية العملية عن طريق تعيين أحد المعلمات استدعاء API CreateProcess.

يوضح المثال التالي على تشغيل التطبيق المفكرة Windows تحت Windows NT 4.0 و أنظمة تشغيل Windows لاحقاً باستخدام أفضلية خاملة. ويرتبط أولوية عملية المتغير 'dwCreationFlags' الذي تم تمريره إلى CreateProcess(). يتم سرد DEFINEs أربع فئات الأولوية المعتمدة في أعلى نموذج البرنامج.

مرة واحدة قيد التشغيل Notepad.exe فحص الأفضلية بدء إدارة مهام Windows ، حدد علامة التبويب "العمليات" ، انقر بزر الماوس الأيمن فوق Notepad.exe ثم حدد "تعيين الأفضلية" من القائمة المنبثقة.

قد تحتاج اسم مسار مؤهل بشكل كامل إلى Notepad.exe التعديل في عبارة التعيين المتغير 'File2Run'.

نموذج التعليمات البرمجية

   #DEFINE NORMAL_PRIORITY_CLASS 32   #DEFINE IDLE_PRIORITY_CLASS 64   #DEFINE HIGH_PRIORITY_CLASS 128   #DEFINE REALTIME_PRIORITY_CLASS 1600   DECLARE INTEGER CreateProcess IN kernel32.DLL ;      INTEGER lpApplicationName, ;      STRING lpCommandLine, ;      INTEGER lpProcessAttributes, ;      INTEGER lpThreadAttributes, ;      INTEGER bInheritHandles, ;      INTEGER dwCreationFlags, ;      INTEGER lpEnvironment, ;      INTEGER lpCurrentDirectory, ;      STRING @lpStartupInfo, ;      STRING @lpProcessInformation   DECLARE INTEGER GetLastError IN kernel32.DLL   * Startup info is 68 bytes, of which we need to   * initially populate the 'cb' or Count of Bytes member   * with the overall length of the structure.   * The remainder should be 0-filled.   START = long2str(68) + REPLICATE(CHR(0), 64)   * PROCESS_INFORMATION structure is 4 longs,   * or 4*4 bytes = 16 bytes, which we'll initially zero.   process_info = REPLICATE(CHR(0), 16)   * Start a copy of NOTEPAD (EXE name must be null-terminated)   File2Run = "C:\WINNT\NOTEPAD.EXE" + CHR(0)   * Call CreateProcess, obtain a process handle. Treat the   * application to run as the 'command line' argument, accept   * all other defaults. Important to pass the start and   * process_info by reference.   RetCode = CreateProcess(0, File2Run, 0, 0, 1, ;      IDLE_PRIORITY_CLASS, 0, 0, @START, @process_info)   * Unable to run, exit now.   IF RetCode = 0      =MESSAGEBOX("Error occurred. Error code: ", GetLastError())      RETURN   ENDIF   ********************   FUNCTION long2str   ********************   * passed : 32-bit non-negative numeric value (m.longval)   * returns : ascii character representation of passed   *    value in low-high format (m.retstr)   * example :   *   m.long = 999999   *   m.longstr = long2str(m.long)   PARAMETERS m.longval   PRIVATE i, m.retstr   m.retstr = ""   FOR i = 24 TO 0 STEP -8      m.retstr = CHR(INT(m.longval/(2^i))) + m.retstr      m.longval = MOD(m.longval, (2^i))   NEXT   RETURN m.retstr						
مراجع
"المتقدمة Windows" ، صفحات Richter فريدة Microsoft Press 92-103, 1997 Edition الثالثة ، ISBN: 1-57231-548-2
kbAPI kbVFp600

تحذير: تمت ترجمة هذا المقال تلقائياً

خصائص

رقم الموضوع: 193846 - آخر مراجعة: 01/27/2005 08:34:21 - المراجعة: 3.4

  • Microsoft Visual FoxPro 3.0b Standard Edition
  • Microsoft Visual FoxPro 5.0 Standard Edition
  • Microsoft Visual FoxPro 5.0a
  • Microsoft Visual FoxPro 6.0 Professional Edition
  • Microsoft Visual FoxPro 7.0 Professional Edition
  • Microsoft Visual FoxPro 8.0 Professional Edition
  • Microsoft Visual FoxPro 9.0 Professional Edition
  • kbmt kbhowto KB193846 KbMtar
تعليقات