Estoy tratando de averiguar si hay una manera de determinar de manera confiable cuándo está a punto de finalizar un subproceso administrado. Estoy usando una biblioteca de terceros que incluye soporte para documentos PDF y el problema es que para usar la funcionalidad PDF, tengo que inicializar explícitamente el componente PDF, hacer el trabajo, luego desinicializar explícitamente el componente antes de que termine el hilo . Si no se llama a uninicializador, se lanzan excepciones porque los recursos no administrados no se están liberando correctamente. Como la clase de subprocesos está sellada y no tiene eventos, debo envolver la instancia de subproceso en una clase y solo permitir que las instancias de esta clase hagan el trabajo.¿Hay alguna forma de determinar cuándo termina una cadena .NET?
Debo señalar que esto es parte de una biblioteca compartida utilizada por varias aplicaciones de Windows. Es posible que no siempre tenga el control de los hilos que hacen llamadas a esta biblioteca.
Dado que un objeto PDF puede ser el resultado de una llamada a esta biblioteca, y dado que la cadena de llamada puede hacer otro trabajo con ese objeto, no quiero llamar inmediatamente a la función de limpieza; Necesito intentar hacerlo justo antes de que el hilo termine. Idealmente, me gustaría poder suscribirme a algo así como un evento Thread.Dispose, pero eso es lo que me estoy perdiendo.
Solo se generará una ThreadAbortException si el hilo muere a través de Abort, que no es el caso la mayor parte del tiempo. – McKenzieG1