2

共有ポイントドキュメントライブラリに電子メールをアップロードするVSTOOutlookアドインに取り組んでいますが、重大な問題は、アップロードプロセスの進行中に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);

誰かがそれを解決する方法を知っているなら、この点で私を素早く助けてください。

4

1 に答える 1

0

アップロードの実装にブレークポイントを設定し、Visual Studio でスレッド ウィンドウを開いて、実行中のスレッドを確認することができます。

正しいスレッドで実行されている場合は、進行状況レポート ロジックが UI スレッドをロックしていないかどうかを確認する必要があります (たとえば、イベントが頻繁に発生している可能性があります)。

最後に、アップロード メソッドの実装が何らかの方法で Outlook COM オブジェクトに直接アクセスしているため、問題が発生する可能性があります。

于 2012-11-07T15:37:49.683 に答える