2010-09-05 15 views
6

MSDN, como muchas otras fuentes, afirman que los subprocesos de trabajo en el grupo de subprocesos siempre son de fondo.Grupo de subprocesos y .IsBackground en .NET

"Los subprocesos del grupo de subprocesos son subprocesos de fondo." (MSDN)

"Los subprocesos agrupados siempre son subprocesos de fondo." (Roscado en C#, Joseph Albahari)

puedo hacer fácilmente el subproceso de trabajo no fondo estableciendo

Thread.CurrentThread.IsBackground = false; 

Y la solicitud será esperar a que finalice el hilo.

¿Qué pasa con eso?

Respuesta

5

¿Cuándo termina el hilo? Cuando tu método termina? Dudo mucho que sea el caso. El objetivo del conjunto de subprocesos es que, una vez que finalice el subproceso, vuelva a colocarse en el grupo para volver a utilizarse. Ahora que has soltado un hilo, ha vuelto al grupo de subprocesos y tu aplicación todavía se está ejecutando porque es un hilo de primer plano. No hay forma de recuperar ese hilo para matarlo.

+0

Gracias. Entiendo los problemas causados ​​por hacer que el hilo agrupado no sea de fondo. Mi punto es ¿por qué el Framework no impide hacer esto de manera más obvia? Esperaba que una excepción fuera honesta. Gracias de todas formas. –

10

Sí, usted puede cambiarlos. Pero usted no debería.

Por las mismas razones, no vuelve a pintar un automóvil prestado. Lo mismo para otras propiedades de subprocesos como prioridad y MTA.

Si quieres un tipo diferente de hilo, crea el tuyo propio.

3

las discusiones del grupo de subprocesos son hilos de fondo

terminar la frase con "tienen su propiedad IsBackground inicializado en True, a diferencia de procesos creados con la clase Thread."

Establecerlo en falso podría ser un poco arriesgado. Los hilos Threadpool se reciclan, no estoy tan seguro de que la propiedad se reinicialice. No es una propiedad asociada con el subproceso del sistema operativo físico, no tienen el comportamiento IsBackground, sino que se agrega mediante el derivador que el CLR coloca alrededor. Entonces probablemente sí. Una pequeña razón para meterse con eso sin embargo.

Cuestiones relacionadas