Mi programa Delphi depende en gran medida de la automatización de Outlook. Las versiones de Outlook anteriores a 2007-SP2 tienden a atascarse en la memoria debido a complementos mal escritos y código de Outlook mal escrito.Si la terminación de un hilo colgado es una buena idea, ¿cómo lo hago de forma segura?
Si Outlook está atascado, llamar a CreateOleObject ('Outlook.Application') u GetActiveObject ... no devuelve y mantiene mi aplicación pendiente hasta que Outlook.exe se cierra en el administrador de tareas.
He pensado en una solución, pero no estoy seguro de si es una buena práctica o no.
Comenzaría Outlook con CreateOleObject en un hilo separado, esperaría 10 segundos en mi hilo principal y si Outlook se cuelga (CreateOleObject no regresa), le ofrezco al usuario que elimine el proceso Outlook.exe de mi programa.
Pero como no quiero force el usuario para matar el proceso de Outlook.exe, como alternativa también necesito una forma de matar el nuevo hilo en mi programa que sigue colgando ahora.
- ¿Es esta una buena práctica?
- ¿Cómo puedo terminar un hilo colgante en Delphi sin que haya una pérdida de memoria?
"mal escrito" estará al alcance ya sea como inflamatoria por algunos, o como redundante por los que se han ocupado de estos antes. Comparto tu dolor, hermano ... –