Visual FoxPro 사용하여 셸된 응용 프로그램의 프로세스 우선 순위를 수정하는 방법

기술 자료 번역 기술 자료 번역
기술 자료: 193846 - 이 문서가 적용되는 제품 보기.
모두 확대 | 모두 축소

이 페이지에서

요약

Win32 커널에 의해 실행이 예약된 어떻게 프로세스의 우선 순위가 결정합니다. 우선 순위가 높은 프로세스를 낮은 우선 순위 가진 프로세스보다 더 빠르게 실행됩니다. 이 문서에서는 셸된 응용 프로그램의 프로세스 우선 순위 수정하는 방법을 설명합니다.

추가 정보

Win32 다음 네 가지 우선 순위 클래스를 지원합니다.
  • 유휴 상태
  • 보통
  • 높은
  • 실시간
유휴 상태 시스템 모니터링 응용 프로그램 또는 화면 보호기 올바른 우선 순위입니다.

보통 우선 특수 일정 요구 가진 프로세스를 나타내는 기본 클래스입니다.

우선 순위가 높은 즉시 실행하도록 제대로 실행하기 위해 필요한 시간 위험 작업을 수행하는 프로세스를 나타냅니다. 높은 우선 순위 클래스 프로세스의 스레드는 정상 또는 유휴 우선 순위 클래스 프로세스의 스레드가 대신합니다. 운영 체제에서 로드에 상관없이 사용자가 호출할 때 빠르게 응답해야 Windows 작업 목록에 있습니다. 높은 우선 순위 클래스 CPU 바인딩 응용 프로그램이 거의 모든 사용 가능한 주기를 사용할 수 있기 때문에 매우 높은 우선 순위 클래스를 사용할 때 주의해야 합니다.

실시간 우선 순위가 가장 높은 가능한 프로세스를 나타냅니다. 실시간 우선 순위 클래스 프로세스의 스레드가 중요한 작업을 수행하는 운영 시스템 프로세스를 포함하여 다른 모든 프로세스의 스레드를 대신합니다. 예를 들어, 실시간 프로세스가 있는 것보다에 대한 디스크 캐시가 플러시할 않거나 응답하지 않을 수 마우스 발생할 수 있는 매우 간단한 간격 발생할 수 있습니다 실행합니다. 이 우선 순위는 거의 절대로 사용해야 합니다.

프로세스의 우선 순위는 CreateProcess API 호출의 매개 변수 중 하나가 할당하여 설정합니다.

다음 예제에서는 Windows NT 4.0 및 이후 Windows 운영 체제에서 유휴 우선 순위를 사용하여 Windows NOTEPAD 응용 프로그램을 실행하는 방법을 보여 줍니다. 프로세스 우선 순위는 CreateProcess() 위해 전달된 'dwCreationFlags' 변수에 의해 제어됩니다. 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", Microsoft Press Jeffrey Richter 페이지 92-103, 세번째 Edition 1997 ISBN: 1-57231-548-2

속성

기술 자료: 193846 - 마지막 검토: 2005년 1월 27일 목요일 - 수정: 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 KbMtko
기계 번역된 문서
중요: 본 문서는 전문 번역가가 번역한 것이 아니라 Microsoft 기계 번역 소프트웨어로 번역한 것입니다. Microsoft는 번역가가 번역한 문서 및 기계 번역된 문서를 모두 제공하므로 Microsoft 기술 자료에 있는 모든 문서를 한글로 접할 수 있습니다. 그러나 기계 번역 문서가 항상 완벽한 것은 아닙니다. 따라서 기계 번역 문서에는 마치 외국인이 한국어로 말할 때 실수를 하는 것처럼 어휘, 구문 또는 문법에 오류가 있을 수 있습니다. Microsoft는 내용상의 오역 또는 Microsoft 고객이 이러한 오역을 사용함으로써 발생하는 부 정확성, 오류 또는 손해에 대해 책임을 지지 않습니다. Microsoft는 이러한 문제를 해결하기 위해 기계 번역 소프트웨어를 자주 업데이트하고 있습니다.

피드백 보내기

 

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