2010-02-10 8 views

Antwort

7

Ein Hintergrund-Thread (dessen Thread-Objekt die Background -Eigenschaft auf true gesetzt hat) verhindert nicht, dass eine Anwendung beendet wird.

Sobald alle normalen (Vordergrund-) Threads beendet wurden, werden alle laufenden Hintergrund-Threads sofort beendet. Wenn eine AppDomain entladen wird, werden außerdem alle Hintergrundthreads in der AppDomain sofort abgebrochen.

Die von der ThreadPool verwalteten Threads sind Hintergrundthreads.

Ein Vordergrund-Thread ist ein gewöhnlicher Thread.

Der Haupt-Thread ist der erste Thread, der das Programm gestartet hat. (Der Thread, der die Main-Methode ausführt)

Weitere Informationen finden Sie unter here.

+0

SLaks, gibt es eine Begrenzung der Anzahl der Threads in Threadpool? – SoftwareGeek

+0

Ja, da ist; lies den Link. Das Standardlimit beträgt 250 pro CPU. Sie können es ändern, indem Sie 'ThreadPool.SetMaxThreads' aufrufen. – SLaks

+1

Ich könnte mich irren, aber ich dachte, dass die Grenze pro Kern war. Ein weiterer Punkt, es gibt sehr wenig Chancen, dass Sie so viele Threads in Ihrer App benötigen. Alles, was Sie tun werden, ist Threading Overhead hinzuzufügen. Aus Erfahrung scheint 2/3 Threads nach Kern eine gute Wahl zu sein. –

0

ein Hintergrund-Thread ist genau das, es ist ein Faden, der von dem UI-Thread einer Anwendung im Hintergrund ausgeführt wird. Der UI-Thread in einer Winforms-Anwendung ist der Thread, der für das Neuzeichnen der Benutzeroberfläche und anderer Benutzerinteraktionen zuständig ist.

Wenn Sie lange laufende Prozesse in einen Hintergrundthread verschieben, wird die Benutzerfreundlichkeit verbessert. Hier ist eine gute intro document zum Threading für Sie.