Nota
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
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 apaga.
Nota:
Cuando el entorno de ejecución detiene un subproceso en segundo plano porque el proceso se apaga, no se produce 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.
Utilice la Thread.IsBackground propiedad para determinar si un subproceso es un subproceso en segundo plano o un subproceso en primer plano, o para cambiar su estado. Un hilo se puede cambiar a un hilo de segundo plano en cualquier momento estableciendo su propiedad IsBackground a 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. Consulte Excepciones en subprocesos administrados.
Los subprocesos que pertenecen al grupo de subprocesos administrados (es decir, los subprocesos cuya IsThreadPoolThread propiedad es true
) son subprocesos en segundo plano. Todos los subprocesos que entran en el entorno de ejecución administrada del código no administrado se marcan como subprocesos en segundo plano. Todos los subprocesos generados mediante la creación e inicio de un nuevo Thread objeto son subprocesos en primer plano de forma predeterminada.
Si usa un subproceso para supervisar una actividad, como una conexión de socket, establezca su propiedad IsBackground a true
para que el subproceso no impida que el proceso termine.