LaunchFullTrustProcessForCurrentAppAsync убивает приложение win32

Привет, у меня есть код ниже для запуска приложения Win32 из приложения UWP:

await FullTrustProcessLauncher.LaunchFullTrustProcessForCurrentAppAsync();

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

Или я должен проверить, прежде чем вызывать приведенный выше код, если Win32 работает, я не должен запускать LaunchFullTrustProcessForCurrentAppAsync? Я не могу проверить запущенный процесс в приложениях UWP, чтобы увидеть, работает ли приложение Win32, могу ли я немного подождать и проверить готовность подключения к службе приложения, иначе мне нужно снова перезапустить?


person spspli    schedule 01.03.2018    source источник


Ответы (1)


Вызов API не убивает ваше приложение Win32, если оно уже запущено. Он запустит второй экземпляр.

Вот мой тестовый проект, чтобы убедиться, что он работает правильно: https://1drv.ms/u/s!AovTwKUMywTNnY5PmDGomMo0V1jB7w

Если в вашем случае существующий экземпляр приложения Win32 завершает работу, это, вероятно, связано с тем, что часть вашего кода/логики неправильно обрабатывает несколько экземпляров.

person Stefan Wick MSFT    schedule 01.03.2018
comment
Мое приложение Win32 должно быть приложением с одним экземпляром. Это причина того, что он был убит? - person spspli; 02.03.2018
comment
И я использую службу подключения приложения, чтобы позволить UWP общаться с приложением wpf, если wpf не является приложением с одним экземпляром, работает ли между ними связь службы подключения приложения? - person spspli; 02.03.2018
comment
Что лучше всего сделать, чтобы убедиться, что приложение Win32 успешно запущено, а служба подключения приложения готова к использованию, а если запуск завершился неудачно или подключение еще не готово, что лучше всего сделать для восстановления? - person spspli; 02.03.2018
comment
Вам нужно реализовать одноэлементный шаблон, что-то вроде этого: hanselman.com/blog/ - person Stefan Wick MSFT; 02.03.2018