CHAITANYA BASAVA KUMAR Ответов: 1

Как заставить консольное приложение продолжать работать


Привет,

У меня есть консольное приложение, которое имеет таймер, для каждого из них он запускает процесс (запускает другое консольное приложение), здесь моя забота заключается в том, что консольное приложение , которое имеет таймер, должно работать всегда, теперь оно работает так, но если я удаляю метод console.readkey (), консольное приложение завершается, не вызывая другое приложение каждую минуту, если console.readkey есть, то оно работает нормально, но я не хочу отображать командное окно

Не могли бы вы мне в этом помочь

Что я уже пробовал:

Я удалил console.readkey (), затем приложение запускается, и оно закрывается

1 Ответов

Рейтинг:
10

OriginalGriff

Когда вы запускаете консольное приложение, оно начинается с первой инструкции в консоли. main метод, и заканчивается последним - когда main возвращает, приложение немедленно прекращается, и все ресурсы, которые у него были, освобождаются обратно для другого использования. Это включает в себя память и потоки - так что при удалении консоли.ReadKey приложению больше нечего делать, поэтому оно немедленно завершает работу, а ваш таймер и все остальные потоки отключаются.

Чтобы продолжить работу с таймером, вы не можете выйти из приложения.


CHAITANYA BASAVA KUMAR

Спасибо, тогда как я могу сделать консольное приложение в качестве сервиса, пожалуйста, дайте мне знать

OriginalGriff

Вы не можете - сервис вообще не может иметь никакого пользовательского интерфейса или каким-либо образом взаимодействовать непосредственно с пользователем. Служба работает в фоновом режиме и не требует входа пользователя в систему, поэтому она вообще не может разговаривать с ним!

Если ваше приложение ничего не отображает, вообще не нуждается в вводе данных от пользователя, то вы можете создать его как сервисный проект:
https://docs.microsoft.com/en-us/dotnet/framework/windows-services/walkthrough-creating-a-windows-service-application-in-the-component-designer

Richard Deeming

Более простым решением может быть избавление от проекта "пусковая установка" и использование планировщика задач Windows для планирования запуска другого приложения через регулярные промежутки времени.

CHAITANYA BASAVA KUMAR

Спасибо, я создал службу windows, и проблема была решена.

OriginalGriff

Превосходно!