BackGroundWorker无法在VSTO Outlook中工作

问题描述:

我正在处理一个将电子邮件上传到SharePoint文档库的VSTO Outlook插件,但关键问题是即使使用BackGroundWorker我也无法在上传过程中使用Outlook。BackGroundWorker无法在VSTO Outlook中工作

代码如下。

System.Threading.SynchronizationContext.SetSynchronizationContext(new WindowsFormsSynchronizationContext()); 
bw = new BackgroundWorker(); 
bw.WorkerReportsProgress = true; 
bw.DoWork += delegate(object sender, DoWorkEventArgs e) 
    { 
     bw_DoWork(sender, e, uploadData); 
    }; 
bw.RunWorkerCompleted += new RunWorkerCompletedEventHandler(bw_RunWorkerCompleted); 
bw.ProgressChanged += new ProgressChangedEventHandler(bw_ProgressChanged); 

如果有人知道如何解决它,请帮助我快速在这方面。

您可以尝试在您的上传实施中放置断点,并在Visual Studio中打开线程窗口以验证它正在运行的线程。

如果它正在正确的线程上运行,那么应该检查您的进度报告逻辑是否锁定了UI线程(例如该事件可能会频繁发生)。

最后,您可能遇到问题,因为上传方法的实现以某种方式直接访问Outlook COM对象。