Was ist der Unterschied zwischen Hintergrund, Vordergrund & Hauptfäden? Was sind die Diff-Typen von Threads in .NET?Was sind Hintergrund-, Vordergrund- und Hauptthreads?
Antwort
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.
Die Unterscheidung ist in der Dokumentation kurzgefasst. Hintergrundthreads werden beim Beenden des Programms unterbrochen.
http://msdn.microsoft.com/en-us/library/h339syd0(VS.71).aspx
Nice link +1 :) –
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.
- 1. Hintergrund und Vordergrund in OpencV
- 2. Unterschied zwischen Vordergrund-Hintergrund-Segmentierungsmethoden in OpenCV
- 3. Austausch von gemeinsamen Elementen (Vordergrund/Hintergrund) Problem
- 4. BlackBerry - Hintergrund-Anwendung zu hören Starts und Vordergrund App
- 5. Schwierige Bildsegmentierung: Hintergrund und Objekte sind ähnlich
- 6. Was ist der Unterschied zwischen Vordergrund- und Hintergrundprogramm?
- 7. Aufgabe in den Hintergrund senden und in den Vordergrund bringen
- 8. Hintergrund Subtraktion und Vordergrund Erkennung mit Kalman Filter
- 9. Was ist in CLR der Unterschied zwischen einem Hintergrund- und einem Vordergrund-Thread?
- 10. Doze-Modus und Vordergrund-Service
- 11. Windows 10 UWP - Hintergrund-Task stoppen, wenn Vordergrund-App läuft
- 12. Swift-Arrays vom Hintergrund in den Vordergrund kopieren
- 13. iOS-Erweiterung - Ermitteln "Extension State Changes" (Hintergrund/Vordergrund)
- 14. Android App, Aktivitätsstatus (läuft, läuft nicht, Vordergrund/Hintergrund)
- 15. fadein den Hintergrund, aber nicht in den Vordergrund
- 16. Wie ändere ich Hintergrund/Vordergrund zu einem bestimmten Muster?
- 17. Was sind Haupt- und Hintergrundthreads in iOS?
- 18. Thread-ID des Hauptthreads abrufen
- 19. UIAlertView verschwindet, wenn die App in den Hintergrund wechselt und wieder in den Vordergrund kommt
- 20. Was sind TestExecutionListeners und was machen sie?
- 21. Was sind Closures und Callbacks?
- 22. Was sind class_setIvarLayout und class_getIvarLayout?
- 23. Was sind Serialisierung und Parcel
- 24. Was sind Hilfsklassen und Skripte?
- 25. Was sind Projektion und Auswahl?
- 26. Was sind DailyTrigger und ScheduledTasks?
- 27. Was sind "cerr" und "stderr"?
- 28. Was sind Hochpass- und Tiefpassfilter?
- 29. Was sind SO_SNDBUF und SO_RECVBUF
- 30. Was sind paddingStart und paddingEnd?
SLaks, gibt es eine Begrenzung der Anzahl der Threads in Threadpool? – SoftwareGeek
Ja, da ist; lies den Link. Das Standardlimit beträgt 250 pro CPU. Sie können es ändern, indem Sie 'ThreadPool.SetMaxThreads' aufrufen. – SLaks
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. –