我正在处理Outlook加载项,并且必须处理大量项目。这需要花费很多时间,因此我试图让处理在不同的线程中运行(使用Task.Factory.StartNew)。但是,这导致Outlook随机崩溃。Outlook加载项:使用线程
我正在使用Redemption与MAPITable一起工作,以减少工作量并只加载相关数据。
- 我试着从我的主线程和我的工作线程初始化我的RDOSession。
- 我试着让主线程的MAPIFolders,并且只用MAPITable的工作线程工作
目前,这对我的作品的唯一事情是运行在主线程我所有的逻辑(在按钮点击事件中),但是这会长时间锁定Outlook的用户界面,这从用户的角度来看是不可接受的。
有没有人有一些关于如何使用Outlook Addin中的后台线程的指针?
下面是一个示例的非工作的代码,这导致在Outlook崩溃:https://gist.github.com/saguiitay/5565244 – SaguiItay 2013-05-12 22:49:16
使用尝试范围RDOSession变量{}和调用GC.Collect();毕竟RDO对象超出了范围。 – 2013-05-14 16:44:25