Tengo un objeto que requiere mucha inicialización (1-2 segundos en una máquina fornida). Aunque una vez que se inicializa, solo toma unos 20 milisegundos para realizar un "trabajo" típico¿La forma correcta de tener un hilo de trabajo sin fin?
Para evitar que se reinicialice cada vez que una aplicación quiere usarlo (que podría ser 50 veces por segundo o no) en absoluto durante unos minutos en el uso típico), decidí darle un quehacer de trabajo, y ejecutarlo en su propio hilo, verificando si hay algo de trabajo para él en el que. Sin embargo, no estoy del todo seguro de cómo hacer un hilo que se ejecute de forma indefinida con o sin trabajo.
Esto es lo que tengo hasta ahora, cualquier crítica es bienvenida
private void DoWork()
{
while (true)
{
if (JobQue.Count > 0)
{
// do work on JobQue.Dequeue()
}
else
{
System.Threading.Thread.Sleep(50);
}
}
}
Después de pensamiento: Estaba pensando que podría tener que matar a este hilo con gracia INSEAD de dejar que siga para siempre, así que creo que voy a añadir una Tipo de trabajo que le dice al hilo que debe terminar. También se agradece cualquier idea sobre cómo finalizar un hilo como este.
Cola clásica, bloqueo y pulsación. –
+1 muy bueno ... –
¿Por qué escribir algo que ya se ha escrito? Pfx, bebé. – Will