我正在研究将电子邮件上传到sharepoint文档库的VSTO Outlook插件,但关键问题是即使使用BackGroundWorker,我也无法在上传过程中使用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);
如果有人知道如何解决,请在这方面尽快帮助我。
答案 0 :(得分:0)
您可以尝试在上传实现上设置断点,并在Visual Studio中打开线程窗口以验证它正在运行的线程。
如果它在正确的线程上运行,则应检查进度报告逻辑是否锁定了UI线程(例如,事件可能经常触发)。
最后,您可能遇到问题,因为上传方法的实现是以某种方式直接访问Outlook COM对象。