Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/batch-file/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# C-是否可以将单个.exe作为应用程序(单击时)或服务(由windows运行时)使用_C#_Service_Window - Fatal编程技术网

C# C-是否可以将单个.exe作为应用程序(单击时)或服务(由windows运行时)使用

C# C-是否可以将单个.exe作为应用程序(单击时)或服务(由windows运行时)使用,c#,service,window,C#,Service,Window,如果某个应用程序作为服务注册,但如果双击它,则只需启动一个常规的交互式应用程序,那么它是否可以作为服务运行?是。您可以使用Environment.UserInteractive变量。您需要在服务周围创建一个小包装,以公开OnStart和OnStop方法,因为它们是受保护的 var service = new MyService(); if (Environment.UserInteractive) {

如果某个应用程序作为服务注册,但如果双击它,则只需启动一个常规的交互式应用程序,那么它是否可以作为服务运行?

是。您可以使用Environment.UserInteractive变量。您需要在服务周围创建一个小包装,以公开OnStart和OnStop方法,因为它们是受保护的

            var service = new MyService();
            if (Environment.UserInteractive)
            {
                service.Start(args);
                Console.WriteLine("Press any key to stop program");
                Console.Read();
                service.Stop();
            }
            else
            {
                ServiceBase.Run(service);
            }
包装类确保扩展ServiceBase

对。您可以使用Environment.UserInteractive变量。您需要在服务周围创建一个小包装,以公开OnStart和OnStop方法,因为它们是受保护的

            var service = new MyService();
            if (Environment.UserInteractive)
            {
                service.Start(args);
                Console.WriteLine("Press any key to stop program");
                Console.Read();
                service.Stop();
            }
            else
            {
                ServiceBase.Run(service);
            }
包装类确保扩展ServiceBase