C#.net程序的控制台
本文关键字:控制台 程序 net | 更新日期: 2023-09-27 18:28:57
我在Unix上的mono下运行一个C#.net程序,我希望在程序启动后控制或更改程序的行为。
我将把新函数写入程序中,这样我只需要在不重新启动程序的情况下触发它们。
我想我可以允许程序接受SOAP之类的消息,但我觉得这可能是有保证的。如果我可以从一个单独的程序本地控制程序,可能会更好,但我不确定从哪里开始。
有没有一种方法可以在没有单独程序的情况下启动程序后向程序发出指令,或者如果单独的程序是解决方案,有人知道从哪里开始吗?
谢谢!
我认为你可以在你的应用程序中创建一些UI表单,并且你将能够通过使用这个UI来控制你的应用。如果它不使用,您可以将该表单隐藏到托盘中。
例如,您也可以使用第二个应用程序,并使用套接字向第一个应用程序发送一些消息。
在Unix程序(参考)中通常这样做的方式是发送SIGHUP信号,并让程序将其解释为重新加载其配置文件的命令。
可以通过Unix kill
命令从终端或脚本发送信号(这样命名是因为默认信号是SIGTERM,用于请求进程自行关闭)。
这就是如何将SIGHUP发送到具有特定PID:的进程
kill -HUP [pid]
您可以在.NET程序中使用mono-UnixSignal类来处理这些Unix信号。一种方法是使用.WaitOne
在专用线程上等待信号。另一种方式是通过定期轮询CCD_ 3或CCD_。