Está bastante bien documentado que cuando se ejecuta el recolector de basura automático de .NET, se detendrá temporalmente todos los subprocesos administrados en ejecución asociados con el dominio de la aplicación. Lo que no he podido descubrir son detalles sobre lo que ocurre con los hilos nativos creados por la aplicación cuando se produce la recolección de basura (es decir, usando _beginthreadex() en lugar de System.Threading.Thread()). ¿Están pausados de manera similar o están en la izquierda?.NET Recolección de basura e hilos nativos
Respuesta
¿this ayuda?
"Un GC no se detendrá hilos que no son la ejecución de código administrado. Dado que esas hilos no pueden estar tocando montón de la GC de todos modos, no hay necesidad de que el GC para coordinar con ellos."
"Si un hilo fue en código administrado, pero llamada a código nativo, se continúe funcionando. Se detendrá si vuelve de nuevo a código administrado."
+1 Bonito enlace. Cosas muy interesantes Espero que no te importe, edité tu publicación para incluir el bit relevante del blog en caso de que se desconecte. –
Eso es interesante. ¿Por qué no pueden esos hilos tocar el montón de GC? ¿Qué pasa con 'gcroot
Tan pronto como un subproceso nativo usa código administrado, se registra con el recolector de elementos no utilizados. Entonces cuando el GC se ejecuta, el hilo se suspende. Solo cuando el hilo muere se desregistra. –
- 1. Recolección de basura en hilos Perl
- 2. Recolección de basura en .NET 4.0
- 3. Recolección de basura en .NET (generaciones)
- 4. Cómo depurar la Recolección de basura .net?
- 5. JVM sin recolección de basura
- 6. y recolección de basura
- 7. Recolección de basura
- 8. recolección de basura de java
- 9. Activación de una recolección de basura .NET externamente
- 10. ¿Notificación de recolección de basura?
- 11. Retraso de recolección de basura?
- 12. Criterios para desencadenar la recolección de basura en .Net
- 13. ¿Es posible detener la recolección de basura .NET?
- 14. ¿WinRT tiene recolección de basura?
- 15. Recolección de basura en Delphi
- 16. multiprocesamiento y recolección de basura
- 17. Uso de la recolección de basura?
- 18. Supresión de la recolección de basura C#
- 19. ¿Deberíamos utilizar la recolección de basura "estación de trabajo" o la recolección de basura "servidor"?
- 20. Subprocesos nativos en una aplicación .Net
- 21. ¿Qué desencadena una recolección de basura gen2?
- 22. Patrones inusuales de recolección de basura
- 23. ¿Trabajador de fondo y recolección de basura?
- 24. Recolección de basura de los miembros estáticos
- 25. Recolección de basura de campos privados
- 26. Node.js y V8 de recolección de basura
- 27. extremadamente largos tiempos de recolección de basura
- 28. Herramienta de recolección de basura para dalvik
- 29. JVM CMS recolección de basura Cuestiones
- 30. Javascript recolección de basura función anónima
Apoyos en la gran pregunta. (props ++) –
Consulte también [aquí] (http://stackoverflow.com/questions/8404245/gc-behavior-and-clr-thread-hijacking) y [aquí] (https://msdn.microsoft.com/en -us/library/678ysw69.aspx). – Nicholas