c# – 运行WPF应用程序作为Windows服务
发布时间:2020-12-15 06:55:53 所属栏目:百科 来源:网络整理
导读:我们正在开发一个 Windows Presentation Foundation应用程序,我们希望能够作为Windows服务运行. 有人做过这样的事情吗? 可能吗? 我们不需要与桌面或任何GUI进行交互,只需安装一个可以使用GUI运行的应用程序,从命令行(即可以使用)或作为服务就可以了. 期待
我们正在开发一个
Windows Presentation Foundation应用程序,我们希望能够作为Windows服务运行.
有人做过这样的事情吗? 我们不需要与桌面或任何GUI进行交互,只需安装一个可以使用GUI运行的应用程序,从命令行(即可以使用)或作为服务就可以了. 期待有趣的输入:-) 解决方法
作为经验法则,服务应该永远不会有任何UI.这是因为服务通常以非常高的权限运行,如果您不太注意输入,则可能会发生坏事情. (我认为Windows的最新版本不会让您根据服务创建UI,但我不是100%肯定的.)
如果您需要与服务进行通信,则应使用某种形式的IPC(WCF,管道,插槽,…).如果你想要一个简单的控制台程序,也可以是一个服务,我知道一个技巧来设置: class MyExampleApp : ServiceBase { public static void Main(string[] args) { if (args.Length == 1 && args[0].Equals("--console")) { new MyExampleApp().ConsoleRun(); } else { ServiceBase.Run(new MyExampleApp()); } } private void ConsoleRun() { Console.WriteLine(string.Format("{0}::starting...",GetType().FullName)); OnStart(null); Console.WriteLine(string.Format("{0}::ready (ENTER to exit)",GetType().FullName)); Console.ReadLine(); OnStop(); Console.WriteLine(string.Format("{0}::stopped",GetType().FullName)); } //snip } 如果您刚刚启动该程序,它将作为一项服务启动(如果您从控制台运行,则会向您发出警告),但是如果在启动该参数时添加了参数–console,程序将启动并等待您点击进入关闭. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |