Exportieren (0) Drucken
Alle erweitern
Dieser Artikel wurde maschinell übersetzt. Bewegen Sie den Mauszeiger über die Sätze im Artikel, um den Originaltext anzuzeigen. Weitere Informationen
Übersetzung
Original

Thread.IsBackground-Eigenschaft

Ruft einen Wert ab, der angibt, ob es sich bei einem Thread um einen Hintergrundthread handelt, oder legt diesen fest.

Namespace:  System.Threading
Assembly:  mscorlib (in mscorlib.dll)

public bool IsBackground { get; set; }

Eigenschaftswert

Typ: System.Boolean
true , wenn dieser Thread ein Hintergrundthread ist oder zu einem solchen wird, andernfalls false.

AusnahmeBedingung
ThreadStateException

Der Thread ist deaktiviert.

Ein Thread ist entweder ein Hintergrundthread oder ein Vordergrundthread. Hintergrundthreads sind mit Vordergrundthreads identisch. Hintergrundthreads verhindern jedoch nicht, dass ein Prozess beendet wird. Sobald alle zu einem Prozess gehörigen Vordergrundthreads beendet wurden, beendet die Common Language Runtime diesen Prozess. Alle verbleibenden Hintergrundthreads werden angehalten und nicht abgeschlossen.

Im folgenden Codebeispiel wird das Verhalten von Vordergrund- und Hintergrundthreads gegenübergestellt. Es werden ein Vordergrund- und ein Hintergrundthread erstellt. Der Vordergrundthread erhält den Prozess bis zum Abschluss seiner while-Schleife aufrecht. Nach Beendigung des Vordergrundthreads wird der Prozess beendet, bevor die while-Schleife des Hintergrundthreads abgeschlossen ist.


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

Unterstützt in: 4.5, 4, 3.5, 3.0, 2.0, 1.1, 1.0

.NET Framework Client Profile

Unterstützt in: 4, 3.5 SP1

Windows 8.1, Windows Server 2012 R2, Windows 8, Windows Server 2012, Windows 7, Windows Vista SP2, Windows Server 2008 (Server Core-Rolle wird nicht unterstützt), Windows Server 2008 R2 (Server Core-Rolle wird mit SP1 oder höher unterstützt; Itanium wird nicht unterstützt)

Es werden nicht alle Versionen sämtlicher Plattformen von .NET Framework unterstützt.. Eine Liste der unterstützten Versionen finden Sie unter Systemanforderungen für .NET Framework.

Community-Beiträge

HINZUFÜGEN
Anzeigen:
© 2015 Microsoft