Quelle est la différence entre un fond et un fil de premier plan?En CLR, quelle est la différence entre un thread de fond et de premier plan?
Répondre
De MSDN:
fils d'arrière-plan sont identiques à fils de premier plan à une exception près: un fil d'arrière-plan ne tient pas l'environnement d'exécution géré en cours d'exécution.
Voir this page:
fils de premier plan ont la capacité d'empêcher l'application actuelle de mettre fin. Le CLR ne fermera pas une application (c'est-à-dire déchargera l'AppDomain d'hébergement) tant que tous les threads de premier plan ne seront pas terminés. Les threads d'arrière-plan (parfois appelés threads daemon) sont considérés par le CLR comme des chemins d'exécution non récupérables qui peuvent être ignorés à tout moment (même s'ils travaillent actuellement sur une certaine unité de travail). Ainsi, si tous les threads de premier plan sont terminés, tous les threads d'arrière-plan sont automatiquement supprimés lorsque le domaine d'application est déchargé.
quand les gens devraient utiliser le fil de fond ..... donner un bon exemple. – Mou
Par défaut, les fils sont des fils de premier plan, ce qui signifie qu'ils gardent l'application en vie aussi longtemps que l'un d'eux est en cours d'exécution. C# prend également en charge les threads d'arrière-plan, qui ne maintiennent pas l'application en veille - se terminant immédiatement une fois que tous les threads de premier plan sont terminés.
Si l'un des fils de premier plan ou d'arrière-plan se termine, l'application meurt immédiatement. Il est possible de changer le fil de premier plan en arrière-plan et vice versa à tout moment pendant la durée de vie de l'application. CLR crée deux types de threads pour mieux prendre en charge AppDomain. CLR fermera de force les threads d'arrière-plan en cours d'exécution si le thread de premier plan se termine. Tous les threads créés par le code natif qui entrent dans l'environnement d'exécution managé sont marqués en tant que threads d'arrière-plan.
- 1. quelle est la différence entre le premier plan et le programme de fond?
- 2. Quelle est la différence entre un thread de travail et un thread d'E/S?
- 3. Quelle est la différence entre dict() et {}?
- 4. quelle est la différence entre:.! et: r !?
- 5. Quelle est la différence entre = et: =
- 6. Quelle est la différence entre un assistant et un partiel?
- 7. Quelle est la différence entre un nanokernel et un exokernel?
- 8. Quelle est la différence entre un midlet et un corelet?
- 9. Quelle est la différence entre un itérateur et un générateur?
- 10. Quelle est la différence entre AppDomain.CurrentDomain.BaseDirectory et Application.ExecutablePath en pratique?
- 11. Quelle est la différence entre nohup et un démon?
- 12. Quelle est la différence entre « et" en JavaScript?
- 13. Quelle est la différence entre 'int?' et 'int' en C#?
- 14. Quelle est la différence entre IContainer et IUnityContainer de Prism?
- 15. Quelle est la différence entre read et readline en C#?
- 16. Quelle est la différence entre while (true) et loop?
- 17. différence entre parameterizedThreadstart, Threadstart et Thread
- 18. Quelle est la différence entre session.Merge et session.SaveOrUpdate?
- 19. jQuery: Quelle est la différence entre '$ (this)' et 'this'?
- 20. Quelle est la différence entre un espace de noms et un module en F #?
- 21. Quelle est la différence entre KERN_INVALID_ADDRESS et KERN_PROTECTION_FAILURE?
- 22. Quelle est la différence entre EM Dash # 151; et # 8212 ;?
- 23. Quelle est la différence entre "someValuesFrom" et "allValuesFrom"?
- 24. Quelle est la différence entre this.click() et $ (this) .click()?
- 25. Quelle est la différence entre "et" lors de la création de chaînes en PHP?
- 26. En Perl, quelle est la différence entre l'utilisation et le besoin de charger un module?
- 27. Quelle est la différence entre memset et memcpy dans C
- 28. Quelle est la différence entre -ggdb gcc et -g gcc
- 29. Quelle est la différence entre le format OMF et COFF?
- 30. Quelle est la différence entre _itoa et itoa?
Clarification: C# n'a pas de concept de fil de fond et de premier plan. Les distinctions que certains scénarios font à propos d'un thread sont effectuées au niveau CLR/COM. – JaredPar
C# n'a pas non plus le concept de girafe, mais vous pouvez créer une classe avec une propriété appelée girafe. IsBackground est une propriété d'un objet dans le framework. Rappelez-vous, C# _the language_ n'est pas le framework .NET. C'est juste un langage de programmation. –