Я пытаюсь выяснить, есть ли способ надежно определить, когда управляемый поток собирается завершиться. Я использую стороннюю библиотеку, которая включает в себя поддержку документов PDF, и проблема в том, что для использования функциональности PDF мне нужно явно инициализировать компонент PDF, выполнить работу, а затем явно деинициализировать компонент до завершения потока , Если не инициализировать не вызывается, генерируются исключения, потому что неуправляемые ресурсы не высвобождаются правильно. Так как класс потока запечатан и не имеет событий, я должен заключить экземпляр потока в класс и разрешить работу только экземплярам этого класса.
Следует отметить, что это часть общей библиотеки, используемой несколькими приложениями Windows. Я не всегда могу контролировать потоки, делающие вызовы в эту библиотеку.
Поскольку объект PDF может быть результатом вызова этой библиотеки, и поскольку вызывающий поток может выполнять какую-то другую работу с этим объектом, я не хочу вызывать функцию очистки немедленно; Мне нужно попытаться сделать это прямо перед тем, как поток завершается. В идеале я хотел бы иметь возможность подписаться на что-то вроде события Thread.Dispose, но это то, что мне не хватает.