Exportar (0) Imprimir
Expandir todo
Este artículo proviene de un motor de traducción automática. Mueva el puntero sobre las frases del artículo para ver el texto original. Más información.
Traducción
Original
Este tema aún no ha recibido ninguna valoración - Valorar este tema

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.5, 4, 3.5, 3.0, 2.0, 1.1, 1.0

.NET Framework Client Profile

Compatible con: 4, 3.5 SP1

Windows 8.1, Windows Server 2012 R2, Windows 8, Windows Server 2012, Windows 7, Windows Vista SP2, Windows Server 2008 (no se admite el rol Server Core), Windows Server 2008 R2 (se admite el rol Server Core con SP1 o versiones posteriores; no se admite Itanium)

.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.
¿Te ha resultado útil?
(Caracteres restantes: 1500)
Gracias por sus comentarios

Adiciones de comunidad

AGREGAR
Mostrar:
© 2014 Microsoft. Reservados todos los derechos.