Как избежать, чтобы приложение-обработчик контекстного меню не блокировало проводник? - PullRequest
1 голос
/ 21 января 2010

Я создал приложение, к которому можно обращаться через контекстное меню, наследуя от IContextMenu и IShellExtInit. Я регистрирую DLL, и когда я щелкаю правой кнопкой мыши, приложение вызывается.

Но проблема в том, что пока мое приложение не закончится, я не могу получить доступ к любому другому файлу в этом проводнике. Проводник эффективно блокируется, пока мое приложение не завершится.

Такое же поведение не отражается в других таких приложениях, как WinZip, WinRar и т. Д.

Как избежать блокировки обозревателем моего приложения?

Любые указатели в этом направлении будут весьма полезны.

Ответы [ 2 ]

1 голос
/ 25 января 2010

Я нашел решение. Я должен порождать процесс, когда проводник вызывает мою DLL, чтобы мой процесс мог продолжаться отдельно, в то время как проводник мог продолжать его выполнение, не блокируясь в моей логике.

Спасибо Полу Беттсу за его первоначальный совет.

0 голосов
/ 21 января 2010

Присоедините отладчик к Проводнику и найдите поток, в котором ваша DLL находится в стеке вызовов, затем посмотрите , что заблокировано на

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...