Hacer una ejecución de componente con servicio con menor prioridad
-
28-10-2019 - |
Pregunta
Tenemos una ServicedComponent
(Aplicación COM+ Server) que es bastante intensiva en CPU. Se llama desde un servicio de Windows y la cantidad de tiempo que le toma completarlo no es muy importante.
Sin embargo, necesito que funcione con menor prioridad. ¿Cómo puedo cambiar su prioridad?
Solución
Supongo que su componente se está ejecutando en una aplicación de servidor (fuera de proceso desde su servicio de Windows).
Si ese es el caso, podría establecer la prioridad del proceso COM+ BelowNormal
En el constructor de clase:
public class Class1 : ServicedComponent
{
public Class1()
{
System.Diagnostics.Process process =
System.Diagnostics.Process.GetCurrentProcess();
if (process.PriorityClass !=
System.Diagnostics.ProcessPriorityClass.BelowNormal)
{
process.PriorityClass =
System.Diagnostics.ProcessPriorityClass.BelowNormal;
}
}
}
Si ejecuto una prueba simple, la prioridad del proceso dllhost.exe se establece para ser belownormal.
Otros consejos
Creo que tiene que establecer la prioridad del servicio de Windows a baja.
Así que busque el siguiente enlace. Espero que ayude.
http://social.msdn.microsoft.com/forums/en-us/netfxbcl/thread/0799ff95-3596-40e0-9fd1-c79b4ffab731/