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?

¿Fue útil?

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/

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top