Jak změnit prioritu procesu shelled aplikaci Visual FoxPro

Překlady článku Překlady článku
ID článku: 193846 - Produkty, které se vztahují k tomuto článku.
Rozbalit všechny záložky | Minimalizovat všechny záložky

Na této stránce

Souhrn

Priorita procesu' Určuje, jak jeho spuštění je naplánováno podle jádra Win32. Procesy s vyšší prioritou provést rychleji než procesy s nižší prioritou. Tento článek popisuje, jak změnit prioritu procesu shelled aplikace.

Další informace

Win32 podporuje následující čtyři priority třídy:
  • Dobu nečinnosti
  • normal
  • Vysoká
  • Reálném čase
Dobu nečinnosti je správné priorita pro sledování systému aplikace nebo spořiče obrazovky.

Třída normální prioritou je výchozí označující proces s žádné zvláštní potřeby plánování.

Vysokou prioritu označuje proces, který provádí čas kritické úkoly vyžadující okamžité provedení pro ni správně spustit. Podprocesy procesu prioritní třída preempt podprocesů procesy třídy priorit normální nebo nečinnosti. Je například v seznamu úkolů Windows, které musí rychle reagovat při volání uživatele bez ohledu na operační systém zatížení. Použít extrémních pozornost při použití třídy s vysokou prioritou, protože prioritní třída PROCESORU vázaný aplikace můžete použít téměř všechny dostupné cykly.

Priority reálném čase označuje proces, který má nejvyšší prioritu možné. Podprocesy procesu v reálném čase prioritu třídy preempt podprocesů všechny ostatní procesy včetně provádění důležité úkoly procesy operačního systému. Například v reálném čase proces, který provede pro více než velmi krátký interval může způsobit diskové mezipaměti k vyprázdnění nebo způsobit myši být odpovídat. Tuto prioritu by měla být téměř nikdy použita.

V procesu priorita nastavena přiřazením jeden z parametrů volání CreateProcess API.

Následující příklad znázorňuje spuštěna aplikace Poznámkový blok Windows v části Windows NT 4.0 a novější operační systémy Windows pomocí nečinné prioritu. Proměnná 'dwCreationFlags předán CreateProcess() je řízena prioritu procesu. DEFINEs pro čtyři podporované prioritu třídy jsou uvedeny v horní části ukázkový program.

Jednou program Notepad.exe běží, prozkoumejte prioritu, Správce úloh systému Windows spustíte, vyberte na kartě procesy, klepněte pravým tlačítkem myši na soubor Notepad.exe a vyberte nastavit prioritu z místní nabídky.

Plně kvalifikovaný název cesty k programu Notepad.exe potřebovat upravován v příkazu přiřazení proměnné 'File2Run.

Ukázkový kód

   #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
						

Odkazy

"Rozšířené Windows", stránek Richter Petra Dobešová, Microsoft Press, 92-103, Third Edition 1997 ISBN: 1-57231-548-2

Vlastnosti

ID článku: 193846 - Poslední aktualizace: 27. ledna 2005 - Revize: 3.4
Informace v tomto článku jsou určeny pro produkt:
  • 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
Klíčová slova: 
kbmt kbhowto KB193846 KbMtcs
Strojově přeložený článek
Důležité: Tento článek byl přeložen pomocí software společnosti Microsoft na strojový překlad, ne profesionálním překladatelem. Společnost Microsoft nabízí jak články přeložené překladatelem, tak články přeložené pomocí software na strojový překlad, takže všechny články ve Znalostní databázi (Knowledge Base) jsou dostupné v češtině. Překlad pomocí software na strojový překlad ale není bohužel vždy dokonalý. Obsahuje chyby ve skloňování slov, skladbě vět, nebo gramatice, podobně jako když cizinci dělají chyby při mluvení v češtině. Společnost Microsoft není právně zodpovědná za nepřesnosti, chyby nebo škody vzniklé chybami v překladu, nebo při použití nepřesně přeložených instrukcí v článku zákazníkem. Společnost Microsoft aktualizuje software na strojový překlad, aby byl počet chyb omezen na minimum.
Projděte si také anglickou verzi článku:193846

Dejte nám zpětnou vazbu

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com