PDA

View Full Version : [C] Gestire priorità processi


Marinelli
26-09-2005, 15:29
Buongiorno a tutti...

Mi servirebbe sapere come posso impostare la priorità di un processo. Ho provato a guardare la MSDN a riguardo ma non ci ho capito molto. In particolare io vorrei settare la priorità del processo a IDLE.

Un'altra cosa... dovrei compilare con il compilatore Intel.

Ciao e grazie mille ;)
Alberto.

Fenomeno85
26-09-2005, 17:23
DWORD dwPriority = HIGH_PRIORITY_CLASS;

hr = pITask->SetPriority(dwPriority);


ciao alber ma con questo non ti funziona?

~§~ Sempre E Solo Lei ~§~

Fenomeno85
26-09-2005, 17:42
in MFC c'è

SetThreadPriority

http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dllproc/base/setthreadpriority.asp

~§~ Sempre E Solo Lei ~§~

The3DProgrammer
26-09-2005, 17:58
in MFC c'è

SetThreadPriority

http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dllproc/base/setthreadpriority.asp

~§~ Sempre E Solo Lei ~§~


xkè MFC? E' una API, credo sia utilizzabile tranquillamente anke senza il framework. + che altro, credo che con MFC sia preferibile usare AfxBeginThread

ciauz

The3DProgrammer
26-09-2005, 18:02
uhm, rileggendo cmq si riferisce alla process priority class credo...

se è questo quello che cerchi puoi usare SetPriorityClass



The SetPriorityClass function sets the priority class for the specified process. This value together with the priority value of each thread of the process determines each thread's base priority level.

BOOL SetPriorityClass(
HANDLE hProcess, // handle to the process
DWORD dwPriorityClass // priority class value
);

Parameters
hProcess
Handle to the process.
Windows NT: The handle must have the PROCESS_SET_INFORMATION access right.

dwPriorityClass
Specifies the priority class for the process. Specify one of the following values: Priority Meaning
HIGH_PRIORITY_CLASS Specify this class for a process that performs time-critical tasks that must be executed immediately. The threads of the process preempt the threads of normal or idle priority class processes. An example is the Task List, which must respond quickly when called by the user, regardless of the load on the operating system. Use extreme care when using the high-priority class, because a high-priority class application can use nearly all available CPU time.
IDLE_PRIORITY_CLASS Specify this class for a process whose threads run only when the system is idle. The threads of the process are preempted by the threads of any process running in a higher priority class. An example is a screen saver. The idle-priority class is inherited by child processes.
NORMAL_PRIORITY_CLASS Specify this class for a process with no special scheduling needs.
REALTIME_PRIORITY_CLASS Specify this class for a process that has the highest possible priority. The threads of the process preempt the threads of all other processes, including operating system processes performing important tasks. For example, a real-time process that executes for more than a very brief interval can cause disk caches not to flush or cause the mouse to be unresponsive.


Return Values
If the function succeeds, the return value is nonzero.

If the function fails, the return value is zero. To get extended error information, call GetLastError.

Remarks
Every thread has a base priority level determined by the thread's priority value and the priority class of its process. The system uses the base priority level of all executable threads to determine which thread gets the next slice of CPU time. The SetThreadPriority function enables setting the base priority level of a thread relative to the priority class of its process. For more information, see Scheduling Priorities.



ciauz