Para ver el artículo en inglés, active la casilla Inglés. También puede ver el texto en inglés en una ventana emergente si pasa el puntero del mouse por el texto.
Traducción
Inglés
Esta documentación está archivada y no tiene mantenimiento.

Thread.IsBackground (Propiedad)

Obtiene o establece un valor que indica si un subproceso es o no un subproceso en segundo plano.

Espacio de nombres:  System.Threading
Ensamblado:  mscorlib (en mscorlib.dll)

public bool IsBackground { get; set; }

Valor de propiedad

Tipo: System.Boolean
true si el subproceso es un subproceso en segundo plano o va a convertirse en un subproceso en segundo plano; en caso contrario, false.

ExcepciónCondición
ThreadStateException

El subproceso está inactivo.

Un subproceso es bien un subproceso en segundo plano o bien un subproceso en primer plano. Los subprocesos en segundo plano son idénticos a los subprocesos en primer plano, a excepción de que los subprocesos en segundo plano no impiden que un proceso finalice. Cuando todos los subprocesos de primer plano que pertenecen a un proceso han finalizado, Common Language Runtime finaliza el proceso. Se detienen todos los subprocesos de fondo restantes y no se finalizan.

En el ejemplo de código siguiente se compara el comportamiento de subprocesos en primer plano y en segundo plano. Se crean un subproceso en primer plano y otro en segundo plano. El subproceso en primer plano mantiene el proceso en ejecución hasta que completa su bucle while. Una vez finalizado el subproceso en primer plano, el proceso se termina antes de que el subproceso en segundo plano complete su bucle while.


using System;
using System.Threading;

class Test
{
    static void Main()
    {
        BackgroundTest shortTest = new BackgroundTest(10);
        Thread foregroundThread = 
            new Thread(new ThreadStart(shortTest.RunLoop));
        foregroundThread.Name = "ForegroundThread";

        BackgroundTest longTest = new BackgroundTest(50);
        Thread backgroundThread = 
            new Thread(new ThreadStart(longTest.RunLoop));
        backgroundThread.Name = "BackgroundThread";
        backgroundThread.IsBackground = true;

        foregroundThread.Start();
        backgroundThread.Start();
    }
}

class BackgroundTest
{
    int maxIterations;

    public BackgroundTest(int maxIterations)
    {
        this.maxIterations = maxIterations;
    }

    public void RunLoop()
    {
        String threadName = Thread.CurrentThread.Name;

        for(int i = 0; i < maxIterations; i++)
        {
            Console.WriteLine("{0} count: {1}", 
                threadName, i.ToString());
            Thread.Sleep(250);
        }
        Console.WriteLine("{0} finished counting.", threadName);
    }
}


.NET Framework

Compatible con: 4, 3.5, 3.0, 2.0, 1.1, 1.0

.NET Framework Client Profile

Compatible con: 4, 3.5 SP1

Compatible con:

Windows 7, Windows Vista SP1 o posterior, Windows XP SP3, Windows XP SP2 x64 Edition, Windows Server 2008 (no se admite Server Core), Windows Server 2008 R2 (se admite Server Core con SP1 o posterior), Windows Server 2003 SP2

.NET Framework no admite todas las versiones de todas las plataformas. Para obtener una lista de las versiones compatibles, vea Requisitos de sistema de .NET Framework.
Mostrar: