Консоль управления для программы C # .net

1

Я запускаю программу С#.net под mono в Unix, и я ищу для управления или изменения поведения программы после ее запуска.

Я напишу новые функции в программу, поэтому мне просто нужно запускать их без перезапуска программы.

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

Есть ли способ дать инструкции в программу после ее запуска без отдельной программы или если отдельная программа является решением, кто-нибудь знает, с чего начать?

Благодарю!

  • 0
    Через TCP: forums.trossenrobotics.com/tutorials/introduction-129/… "Не проверено на моно", хотя ...
  • 0
    Как ты это сделаешь? «Я напишу новые функции в программу»
Показать ещё 2 комментария
Теги:
mono

2 ответа

1
Лучший ответ

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

Или вы можете использовать второе приложение и отправить некоторые сообщения в свое первое приложение, используя, например, сокеты.

  • 0
    Целевая программа будет работать на сервере Unix и не будет иметь пользовательского интерфейса, о котором можно было бы говорить.
  • 0
    Мне действительно нравится идея сокетов, поскольку мы могли бы использовать отдельное приложение с пользовательским интерфейсом, более удобным для пользователя, чем интерфейс командной строки или сценарий perl.
1

Обычно это делается в программах Unix (ссылка), отправляя сигнал SIGHUP и позволяя программе интерпретировать это как команду для перезагрузки файла конфигурации.

Отправка сигнала может быть выполнена с терминала или скрипта с помощью команды Unix kill (которая названа так, потому что сигнал по умолчанию - SIGTERM, чтобы запросить завершение процесса).

Так вы отправляете SIGHUP в процесс с определенным PID:

kill -HUP [pid]

Вы можете использовать моно- UnixSignal для обработки этих сигналов Unix в.NET-программе. Один из способов - использовать .WaitOne для ожидания сигнала в выделенном потоке. Другой способ - регулярный опрос .IsSet или .Count.

  • 0
    Сигнал был интересным чтением, которое могло бы быть полезным, если не использовать интерфейс пользователя.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню