Eu trabalho para um service desk, nós usamos o MS Office no Windows 7. Tenho notado que quando um programa de escritório trava e se outro está em execução, fechar o outro programa de escritório em execução permitirá que você reinicie o que caiu, se você não feche, parece que não funciona.
Por exemplo:
Vamos dizer que seu aplicativo do Outlook trava e você tem o Skype em execução. Se você tentar relançar o Outlook na maior parte do tempo, receberá um erro dizendo algo como Cannot open Outlook
. No entanto, se você fechar o Skype e executar o Outlook novamente, o Outlook será iniciado com êxito e o Skype também funcionará com êxito.
Então, minha pergunta é, isso acontece porque o MS Office encadeia o mesmo arquivo DLL? Como um thread executa um aplicativo, e outro thread executa outro, isso faria sentido porque, pelo que entendi se um encadeamento for travado e outro encadeamento estiver sendo executado, ele não iniciará o outro encadeamento até que o encadeamento secundário tenha terminado.