Salve a tutti,
sono riuscito a creare tramite visual studio.net e molte ricerche in rete un addin per outlook che scarica da un database Mysql alcune informazioni che vanno a popolare il calendario con degli appuntamenti.

Per evitare di bloccare outlook ho utilizzato un oggetto Thread e ho provato pure con un oggetto BackgroundWorker, ma Outlook quando si chiude impiega un po' di tempo a rilasciare le risorse anche se l'interfaccia è già chiusa.

Il mio problema è che se tento di riaprire Outlook dopo averlo chiuso mi appare il seguente messaggio di errore: "Operazione non riuscita".

E questo messaggio mi appare appena clicco sull'icona di Outlook.

Questo messaggio però non appare se aspetto un po' a cliccare sull'icona.

Io penso possa essere un problema di rilascio delle risorse, io prima di chiudere utilizzo il seguente codice:

codice:
       MyButton.Delete()
        form.Dispose()
        workerthread.CancelAsync()


        Marshal.ReleaseThreadCache()

        While (workerthread.isBusy)

        End While

        workerthread = Nothing
        MyButton = Nothing
        form = Nothing
Dove MyButton è un pulsante che ho aggiunto alla barra degli strumenti di Outlook
form è un oggetto System.Windows.Forms.Form
workerthread è un oggetto BackgroundWorker

e dentro il while tento di catturare se il thread è in esecuzione.

C'è modo di riuscire ad evitare che il processo di Outlook resti ancora in esecuzione per un po' dopo la chiusura?

Grazie comunque