Outlook может зависнуть по многим причинам. Поскольку Outlook основывается на COM, он использует STA , что приведет к зависанию основного потока пользовательского интерфейса во время ожидания завершения длительной операции ( сетевой вызов, чтение / запись на диск и т. Д. И т. Д.). ).
Вам потребуется просмотреть исходный код, чтобы проверить, какое поведение выполняет компонент, когда он зависает. Вставка операторов трассировки (Trace.TraceInformation
) также может помочь, если вы можете повторить зависание. Начните с события ThisAddIn.ThisAddIn_Startup
, чтобы увидеть точку входа в AddIn. DebugView - отличная утилита для просмотра результатов трассировки вашего плагина во время его работы.
Если COM-ресурсы не очищаются должным образом (Marshal.ReleaseComObject
) - со временем потребление памяти будет расти, что приведет к замедлению работы приложения - хотя это не должно вызывать его зависание / зависание .
Лучше всего понимать поведение плагина, чтобы увидеть, что вызывает зависание.