För det första, undvik att sätta RealTime på saker och ting. Det ger en alldeles för hög trådprioritet för de flesta normala program.
För det andra, varför sätter du inte bara proc.PriorityClass innan du startar processen? Eller efter för den delen? Varför leta efter ett hårdkodat namn? Du har ju redan en referens till den nya processen.
Tack för ditt svar. Jag trodde att jag var tvungen att leta rätt på namnet innan jag gav prioritet.
Orsaken för detta är jag startar ett spel och då ville jag ge högsta prioritet.
Om jag använder mig av proc.PriorityClass hur kan jag då säga att jag vill ha högre prioritet?
Men jag är osäker på om du egentligen förstår vad PriorityClass innebär, så låt mig försöka sammanfatta det kort.
Varje tråd har en trådprioritet mellan 0 och 31. När en given tråd har kört slut på sin time-slice (eller hamnar i en kernel-wait), måste den lämna över CPU:n till nästa tråd på kön. Denna kö består av trådar som är redo att köra och är sorterad efter trådprioritet. Om det inte finns någon annan tråd som är redo att köra, kommer den avlämnande tråden att få tillbaka CPU:n och fortsätta.
Varje tråd hör till en process som har en Prioritetsklass. Trådens trådprioritet kan avvika maximalt 2 enheter från Prioritetsklassens numeriska värde. Så om processen har Priority Class = Normal (8), har dess trådar minimum 6 och maximum 10 i trådprioritet.
Så min följdfråga är ju varför du vill ändra Priority Class för ett spel? Om det inte har hård konkurrens av andra processers trådar, så kommer det inte gå snabbare bara för det. Vad vill du ha ut av prioritetsändringen?
P.S. Ja, det finns en massa annat jox med detta också, t ex Dynamic Boost, men jag ville hålla det enkelt.