У меня есть приложение WinForms, которое опирается на несколько библиотек, над которыми у меня ограниченный контроль, таких как Forms.Images и Forms.WebBrowser. Внезапные утечки памяти вызывают сбой моего приложения. Это не утечки памяти со временем, которые накапливаются. Они случайные, часто разные исключения COM и их невозможно предсказать - иногда они происходят через час, иногда через день.
Моя текущая методология, чтобы хотя бы временно справиться с этой проблемой, состоит в том, чтобы другое приложение проверило, что первое запущено, с помощью GetProcessesByName (). Однако это проблематично, поскольку текущий процесс иногда завершается сбоем, но не закрывается. Я просто получаю сообщение WER (несмотря на то, что WER выключен на компьютере). Хуже всего то, что, когда происходит сбой первого процесса и происходит утечка памяти, также происходит сбой второго приложения для проверки процессов. И тогда ничего не работает, пока я вручную не перезагружаю весь шабан.
1) Кто-нибудь знает эффективный способ проверки процесса A, если процесс B запущен, не подвергая процесс A проблемам с памятью, которые привели к сбою процесса B?
2) Если вышесказанное невозможно или слишком сложно, кто-нибудь знает какие-либо хорошие сторонние инструменты, которые можно использовать для гарантии того, что процессы работают без каких-либо выдающихся ошибок WER, которые перезапускают процессы, если обнаружены ошибки WER, и что может выдержать израсходованный ОЗУ?
Спасибо!