Il seguente link http://msdn2.microsoft.com/it-it/library/ms228772.aspx suggerisce una soluzione per il seguente problema:
Se si esegue una chiamata a livello di codice all'automazione di Visual Studio da un'applicazione multithread esterna (out-of-process), è possibile che talvolta si verifichino gli errori di "Applicazione occupata" o "Chiamata respinta dal chiamato". Si tratta di errori dovuti a problemi di conflitto di threading tra applicazioni multithread esterne e Visual Studio. Tali problemi possono essere eliminati con l'implementazione di gestori di errori IOleMessageFilter nell'applicazione di automazione di Visual Studio (da non confondersi con System.Windows.Forms.IMessageFilter).