我被要求开发一个C# Windows服务。然而,我习惯于创建具有用户输入的GUI界面。
由于Windows服务是自动化的,因此我想知道代码如何执行。
我的意思是,我如何控制流程?
能否有人澄清一下?我没有找到关于Windows服务的很多信息...
由于Windows服务是自动化的,因此我想知道代码如何执行。
我的意思是,我如何控制流程?
能否有人澄清一下?我没有找到关于Windows服务的很多信息...
Windows服务从OnStart开始执行,通常情况下,例如定时器,重复的执行从这里开始。当服务停止时,将调用OnStop方法。此文章可能是一个很好的起点。
protected override void OnStart(string[] args)
{
base.OnStart(args);
//TODO: place your start code here
}
protected override void OnStop()
{
base.OnStop();
//TODO: clean up any variables and stop any threads
}
OnStart()
中启动。protected override void OnStart(string[] args)
{
// Equivalent of Main()
// Run threads here before timeout so OS knows it has started
}
通常情况下,您会从另一个函数启动线程,以便OnStart()
可以返回并启动服务。
OnStop
和OnShutdown
也是一样的,您可以在这里清理所有内容。
OnStart
等函数,否则你的进程将会被终止。 - lc.protected override void OnStart(string[] args)
{
try
{
timer.AutoReset = true;
timer.Enabled = true;
timer.Start();
serviceThread = new Thread(new ThreadStart(Delete));
clientCleanupThread = new Thread(new ThreadStart(removeExpirery));
enableAutoSubscribeProduct = new Thread(new ThreadStart(Products));
serviceThread.Start();
clientCleanupThread.Start();
enableAutoSubscribeProduct.Start();
}
catch (Exception ex)
{
Log.Error("Error on thread start " + ex.Message);
}
}