我想用C#创建一个应用程序...:
可以作为Windows应用程序运行,具有GUI(它将指示进度,状态等)
要么
可以作为Windows服务运行,无需GUI
可能吗?有人可以让我开始吗?
我想替代方案是我可以创建一个Windows服务,然后是一个单独的GUI应用程序,它可以轮询Windows服务以从中获取数据(进度,状态等).
在这种情况下......如何从我的GUI应用程序中获取Windows服务中的数据?
我正在做类似你所要求的事情.我已对其进行了编程,以便在将命令行参数"/ form"发送到可执行文件时,它将弹出一个Windows窗体而不是作为服务运行.
至于运行后台作业本身,在这两种情况下,您都需要执行某种线程(可能带有计时器)来执行工作并将状态异步报告回表单.这将是关于创建线程GUI应用程序的完全不同的讨论主题.
"表单或服务"代码如下所示:
static class Program { ////// The main entry point for the application. /// private static void Main(string[] args) { if (args.Length > 0 && args[0] == "/form") { var form = new MainForm(); Application.Run(form); return; } var ServicesToRun = new ServiceBase[] { new BackgroundService() }; ServiceBase.Run(ServicesToRun); } }