고수닷넷 - 데미소다오렌지님
Windows의 작업관리자에서 보기, 열선택 메뉴에서 기본 우선순위를 선택하게 되면, 각각의 프로세스의 우선순위가 표시된다. 여기서 나타나는 우선순위를 조절하기 위해서는 다음 함수를 사용하면 된다.
BOOL SetPriorityClass( HANDLE hProcess, DWORD dwPriorityClass );
첫번째 인자로 프로세스 핸들을, 두번째 인자로 지정하고 싶은 프로세스 우선순위 클래스를 넣어주면 된다. 두번째 인자로는 다음과 같은 값이 들어갈 수 있다.
- dwPriorityClass
- ABOVE_NORMAL_PRIORITY_CLASS 높음과 보통 사이의 우선순위, 9x 지원안됨
- BELOW_NORMAL_PRIORITY_CLASS 보통과 낮음 사이의 우선순위, 9x 지원안됨
- HIGH_PRIORITY_CLASS 높음
- IDLE_PRIORITY_CLASS 낮음
- NORMAL_PRIORITY_CLASS 보통
- REALTIME_PRIORITY_CLASS 실시간
SetPriorityClass(GetCurrentProcess(), HIGH_PRIORITY_CLASS);
위와 같이 함수를 호출하게 되면, 현재 프로세스의 우선순위가 높음으로 변경된다. 하지만 이것은 단지 다른 프로세스에 비해서 스케쥴이 좀 더 높은 우선순위를 가진다는 것이지, 더 빨리 실행된다는 것을 의미하진 않는다.
물론 다른 낮은 우선순위의 프로세스들과 서로 경쟁하는 상황에서는 위와같이 높임으로써 CPU 시간을 좀 더 얻을 수 있지만, 그런 것들이 없는 상황이라면 그렇게 큰 효과를 보기는 어렵다.
"Win32 API" 카테고리의 다른 글
- Volatile (0)2007/02/21
- 특정 확장자명으로 프로그램 실행시키기 (0)2007/02/21
- 프로세스 우선순위 조절하기 (2)2007/01/03
- 클립보드 모니터링 하기 (0)2007/01/03
- TRACE 매크로를 구현하는 방법 (0)2007/01/02

수안이의 컴퓨터 연구실



Leave your greetings.
관리자만 볼 수 있는 댓글입니다.
2007/06/11 15:32 [ Permalink : Modify/Delete : Reply ]Report의 압박... 무섭죠... ㅋㅋ
2007/06/15 14:47 [ Permalink : Modify/Delete ]