如果这样注册的应用程序可以运行,而双击却只是启动一个常规的交互式应用程序,是否可以将其作为服务运行?
是的。您可以使用该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
)
public partial class MyService : ServiceBase
{
protected override void OnStart(string[] args)
{
//start code
}
protected override void OnStop()
{
//stopcode
}
public void Start(string[] args)
{
OnStart(args);
}
}
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句