我已经写了一个outlook外接程序来过滤垃圾邮件。
是否有一种异步方式来运行外接程序处理,以便outlook UI保持正常。
外接程序在处理每条消息的过程中会做很多事情,因此需要花费很多时间。
发布于 2009-12-09 11:11:45
如果大部分时间都花在Outlook API上,则创建另一个线程不会对您有所帮助。由于Outlook中的线程模型,从另一个线程访问对象模型将导致调用被封送到主线程,这意味着现在您的UI仍处于冻结状态,而后台线程正在阻塞。
如果大部分工作都花在不接触Outlook对象模型的工作上,您可能会看到显著的改进,即使用单独的工作线程(或线程池)来处理已保存的附件。
发布于 2009-02-07 23:05:47
基本上就像任何其他程序一样。如果你需要在主线程之外做一些事情,那就去做吧(例如,创建另一个线程)。不过,没有特定于Outlook的API或框架。
不过,对于异常处理,您必须格外小心。从线程中转义的未经处理的异常可能会产生最奇怪的结果(尽管在大多数情况下,Outlook只会崩溃)。
此外,如果可能的话,您应该尽量避免或至少严格限制从处理线程中访问Outlook对象模型。
最后,您应该确保的另一件事是,如果新线程以任何方式直接或间接地使用COM相关函数,则应显式调用专门用于新线程的CoInitializeEx / CoUninitialize。
https://stackoverflow.com/questions/524637
复制相似问题