Compartir a través de


Subprocesos de primer y segundo plano

Un subproceso administrado es un subproceso en segundo plano o un subproceso en primer plano. Los subprocesos en segundo plano son idénticos a los subprocesos en primer plano con una excepción: un subproceso en segundo plano no mantiene el entorno de ejecución administrado en ejecución. Una vez que todos los subprocesos en primer plano se han detenido en un proceso administrado (donde el archivo .exe es un ensamblado administrado), el sistema detiene todos los subprocesos en segundo plano y se cierra.

Nota

Cuando el tiempo de ejecución detiene un subproceso en segundo plano porque el proceso se va a cerrar, no se inicia ninguna excepción en el subproceso. Sin embargo, cuando se detienen los subprocesos porque el método AppDomain.Unload descarga el dominio de aplicación, se produce ThreadAbortException en los subprocesos en primer y segundo plano.

Use la propiedad Thread.IsBackground para determinar si un subproceso es de primer o segundo plano o para cambiar su estado. Un subproceso puede cambiar a un subproceso en segundo plano en cualquier momento estableciendo su propiedad IsBackground en true.

Importante

El estado de primer o segundo plano de un subproceso no afecta al resultado de una excepción no controlada del subproceso. Una excepción no controlada de subprocesos en primer o segundo plano provoca la finalización de la aplicación. Vea Excepciones en subprocesos administrados.

Los subprocesos que pertenecen al grupo de subprocesos administrados (es decir, subprocesos cuya propiedad IsThreadPoolThread es true) son subprocesos en segundo plano. Todos los subprocesos que entran en el entorno de ejecución administrado desde el código no administrado se marcan como subprocesos en segundo plano. Todos los subprocesos generados al crear e iniciar un nuevo objeto Thread son subprocesos de primer plano predeterminados.

Si utiliza un subproceso para controlar una actividad, como una conexión de socket, establezca su propiedad IsBackground en true para que el subproceso no impida la terminación del proceso.

Vea también