Dieser Artikel wurde maschinell übersetzt. Wenn Sie die englische Version des Artikels anzeigen möchten, aktivieren Sie das Kontrollkästchen Englisch. Sie können den englischen Text auch in einem Popupfenster anzeigen, indem Sie den Mauszeiger über den Text bewegen.
Übersetzung
Englisch

Thread.IsBackground-Eigenschaft

 

Veröffentlicht: Oktober 2016

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;
	[HostProtectionAttribute(SecurityAction.LinkDemand, SelfAffectingThreading = true)]
	set;
}

Eigenschaftswert

Type: System.Boolean

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

Exception Condition
ThreadStateException

Der Thread ist deaktiviert.

Ein Thread ist ein Hintergrundthread oder ein Vordergrundthread. Hintergrundthreads sind mit Vordergrundthreads identisch, außer dass Hintergrundthreads verhindert nicht, einen Prozess beendet ist. Sobald alle zu einem Prozess gehörenden Vordergrundthreads beendet wurden, beendet die common Language Runtime den Prozess an. Alle verbleibenden Hintergrundthreads werden beendet und nicht abgeschlossen.

Wird standardmäßig die folgenden Threads, die im Vordergrund ausgeführt (d. h. deren IsBackground -Eigenschaft gibt false):

  • Der primäre Thread (oder den Hauptthread der Anwendung).

  • Alle Threads durch Aufruf erstellt einen Thread Klassenkonstruktor.

Standardmäßig werden die folgenden Threads im Hintergrund ausgeführt (d. h. ihre IsBackground -Eigenschaft gibt true):

  • Der Thread im Threadpool, die einen Pool von Arbeitsthreads, die von der Laufzeit verwaltet werden. Sie können die Thread-Pool und den Zeitplan Arbeit auf Threads im Threadpool konfigurieren, mit der ThreadPool Klasse.

    System_CAPS_noteHinweis

    Aufgabenbasierte asynchrone Vorgänge werden automatisch auf Threads im Threadpool ausgeführt.

  • Alle Threads, die die verwaltete ausführungsumgebung von nicht verwaltetem Code eingeben.

Im folgende Beispiel werden die Unterschiede zwischen des Verhaltens von Vordergrund-und Hintergrundthreads. Erstellt einen Vordergrundthread und einen Hintergrundthread weitergeben. Der Vordergrundthread erhält den Prozess ausgeführt wird, bis Abschluss seine for Schleife und beendet. Jedoch, wie die Ausgabe des Beispiels zeigt, da der Vordergrundthread Ausführung abgeschlossen ist, wird der Prozess beendet, bevor der Hintergrundthread Ausführung abgeschlossen wurde.

using System;
using System.Threading;

class Example
{
    static void Main()
    {
        BackgroundTest shortTest = new BackgroundTest(10);
        Thread foregroundThread = 
            new Thread(new ThreadStart(shortTest.RunLoop));

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

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

class BackgroundTest
{
    int maxIterations;

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

    public void RunLoop()
    {
        for (int i = 0; i < maxIterations; i++) {
            Console.WriteLine("{0} count: {1}", 
                Thread.CurrentThread.IsBackground ? 
                   "Background Thread" : "Foreground Thread", i);
            Thread.Sleep(250);
        }
        Console.WriteLine("{0} finished counting.", 
                          Thread.CurrentThread.IsBackground ? 
                          "Background Thread" : "Foreground Thread");
    }
}
// The example displays output like the following:
//    Foreground Thread count: 0
//    Background Thread count: 0
//    Background Thread count: 1
//    Foreground Thread count: 1
//    Foreground Thread count: 2
//    Background Thread count: 2
//    Foreground Thread count: 3
//    Background Thread count: 3
//    Background Thread count: 4
//    Foreground Thread count: 4
//    Foreground Thread count: 5
//    Background Thread count: 5
//    Foreground Thread count: 6
//    Background Thread count: 6
//    Background Thread count: 7
//    Foreground Thread count: 7
//    Background Thread count: 8
//    Foreground Thread count: 8
//    Foreground Thread count: 9
//    Background Thread count: 9
//    Background Thread count: 10
//    Foreground Thread count: 10
//    Background Thread count: 11
//    Foreground Thread finished counting.

.NET Framework
Verfügbar seit 1.1
Silverlight
Verfügbar seit 2.0
Windows Phone Silverlight
Verfügbar seit 7.0
Zurück zum Anfang
Anzeigen: