Консольное приложение C# - Поддерживает его в рабочем состоянии

Возможно, вы захотите посмотреть на совпадение строк с регулярными выражениями («regexp»). Обратите внимание, что синтаксис регулярных выражений, используемый Matlab, отличается от синтаксиса, используемого в VBA. В вашем примере «.» берет на себя роль «?» подстановочный знак, чтобы вы могли сделать

str1 = 'aabb'; % Match
str2 = 'abab'; % No match

if isempty(regexp(str1, '.ab.'))
  disp('str1 is no match');
else
  disp('str1 is a match');
end

if isempty(regexp(str2, '.ab.'))
  disp('str2 is no match');
else
  disp('str2 is a match');
end

, и вы должны получить следующее:

str1 является совпадением

str2 не соответствует

12
задан 30 March 2009 в 02:55
поделиться

7 ответов

Лучшее решение состояло бы в том, чтобы записать консольное приложение, которое делает его задание и выходы. Можно затем использовать Windows Task Scheduler для выполнения его периодически.

14
ответ дан 2 December 2019 в 03:49
поделиться

Почему Вы не создаете свое приложение как услуга во-первых?

8
ответ дан 2 December 2019 в 03:49
поделиться

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

2
ответ дан 2 December 2019 в 03:49
поделиться

Вы, вероятно, не хотите просто вращаться в цикле, напрасно использующем процессорное время.

Принятие Вас находится на окнах, у Вас должен быть цикл, который никогда не заканчивается вызовом к WaitForSingleObject () или WaitForMultipleObjects () или MsgWaitForMultipleObjects () в зависимости от Ваших потребностей. Затем имейте некоторый объект синхронизации, который будит Вас, такие как именованное событие.

См. документацию Синхронизации Win32 здесь. Если Вы уточняете больше то, что должна сделать Ваша программа, мы можем, вероятно, предоставить более определенную консультацию.

3
ответ дан 2 December 2019 в 03:49
поделиться

Если Ваша программа будет постоянно выполнением затем, необходимо спать, пока желаемое событие не имеет место (например, передачи секунд XX). Если Вы просто будете вращаться в некоторое время {} цикл, то Вы высосете процессорное время.

Если Ваша программа собирается всегда работать на машине затем, необходимо считать создание ее сервисом, таким образом, она автоматически запускается и останавливается с машиной.

2
ответ дан 2 December 2019 в 03:49
поделиться

Хорошо я уверен в какой-то момент, что это должно остановиться, нет?

Породите поток, который действительно работает и имеет основной блок потока на Консоли. ReadLine (), если Вы хотите, чтобы это было выполнимо как консольное приложение также.

Если Вы действительно просто хотите приостановить основной поток навсегда, просто блок на ManualResetEvent, Вы никогда не стреляете.

Но, рассмотрите использование сервиса, если Вы можете.

1
ответ дан 2 December 2019 в 03:49
поделиться

Если Ваше создание настольного приложения Вы захотите иметь выполненный в системном лотке. Это будет

  1. Сохраните своих пользователей от случайного закрытия приложения
  2. Помешайте своему приложению создавать помехи экрану Ваших пользователей

Если Ваше создание серверного приложения Вы захотите записать сервис окон. Это будет

  1. Сохраните администратора от случайного закрытия Вашего приложения
  2. Избавьте от необходимости сервер входить в кого-то консоль для Вашего приложения для выполнения в

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

1
ответ дан 2 December 2019 в 03:49
поделиться
Другие вопросы по тегам:

Похожие вопросы: