Как программно остановить / завершить / завершить работу / завершить работу приложения dotnet core HostBuilder? - PullRequest
0 голосов
/ 27 февраля 2019

Я пытаюсь создать консольное приложение с ядром dotnet.Приложение является простым служебным приложением и должно запускаться, делать свое дело и выходить.Этого легко добиться, используя стандартный шаблон консольного приложения, сгенерированный Visual Studio.Но в наши дни у нас есть HostBuilder, который кажется более привлекательным, потому что он объединяет опыт работы с WebHostBuilder, DI, Loggin и т. Д.

Но похоже, что этот подход предназначен только для длительных фоновых сервисов.Он будет запускаться и сидеть вечно до события внешнего завершения (например, Ctrl-C).

Есть ли способ завершить этот тип приложения изнутри?

1 Ответ

0 голосов
/ 28 февраля 2019

Вы можете использовать IApplicationLifetime, чтобы остановить запуск вашего приложения, вы можете получить к нему доступ из конструктора и вызвать метод StopApplication().

IApplicationLifetime _lifeTime;
public MyClass(IApplicationLifetime lifeTime)
{
    _lifeTime = lifeTime;
}

затем StopApplication ()

public void Exit()
{
    _lifeTime.StopApplication();
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...