2012-09-15 7 views
2

Je travaille sur un addin Outlook VSTO qui télécharge des e-mails dans la bibliothèque de documents sharepoint mais le problème majeur est que même avec BackGroundWorker je ne peux pas utiliser Outlook pendant le téléchargement.BackGroundWorker ne fonctionne pas dans VSTO Outlook

Le code est le suivant.

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); 

Si quelqu'un sait comment le résoudre s'il vous plaît aidez-moi rapidement à cet égard.

Répondre

0

Vous pouvez essayer de placer un point d'arrêt sur votre implémentation de téléchargement et d'ouvrir la fenêtre des threads dans Visual Studio pour vérifier sur quel thread il s'exécute. S'il est exécuté sur le bon thread, vous devez alors vérifier si votre logique de rapport de progression bloque le thread de l'interface utilisateur (par exemple, l'événement peut être déclenché trop souvent). Enfin, vous pouvez rencontrer des problèmes car l'implémentation de la méthode de téléchargement accède directement aux objets Outlook COM d'une manière ou d'une autre.

Questions connexes