如何避免由于启动缓慢而禁用VSTO Outlook加载项?

如何避免由于启动缓慢而禁用VSTO Outlook加载项?,outlook,vsto,Outlook,Vsto,我有一个外接程序,它需要在启动时运行一些耗时的代码,因为Outlook禁用了缓慢的外接程序,如何避免这种情况。是否有我可以响应的事件我们不计入慢加载项的展望计算?还是利用线程是唯一的出路?我有点担心线程如果不小心使用可能会与Outlook产生不良的交互 不要在启动时执行类似操作-最简单的解决方法是创建一个计时器对象,使用表单命名空间中的计时器对象,而不是系统-您希望计时器在主线程上启动,并在计时器事件启动时运行代码。当事件触发时,您将退出Outlook监视的启动回调,因此它永远不会知道。用户仍然

我有一个外接程序,它需要在启动时运行一些耗时的代码,因为Outlook禁用了缓慢的外接程序,如何避免这种情况。是否有我可以响应的事件我们不计入慢加载项的展望计算?还是利用线程是唯一的出路?我有点担心线程如果不小心使用可能会与Outlook产生不良的交互

不要在启动时执行类似操作-最简单的解决方法是创建一个计时器对象,使用表单命名空间中的计时器对象,而不是系统-您希望计时器在主线程上启动,并在计时器事件启动时运行代码。当事件触发时,您将退出Outlook监视的启动回调,因此它永远不会知道。用户仍然会被封锁,所以这只能是临时的创可贴。 你仍然可以在你的插件中使用线程,你只需要确保你不接触辅助线程。如果耗时的代码不需要任何Outlook对象,则可以轻松地将其移动到辅助线程中。否则扩展MAPI C++或DEPHI,或者它封装扩展MAPI,并且可以从任何语言使用是您唯一的选择。在赎回的情况下,您可以将Namespace.MAPIOBJECT属性的值保存在变量中,然后在辅助线程上创建对象的新实例,该实例大致对应于OOM中的Namespace对象,并将其MAPIOBJECT属性设置为保存在主线程上的值