我被要求开发一个C#windows服务。但是我习惯用User Input创建GUI。
由于Windows服务是自动化的,我想知道代码是如何执行的。
我的意思是如何控制流量?
有人可以澄清吗?我没有找到很多关于窗口服务的信息......
答案 0 :(得分:2)
Windows服务从OnStart开始执行,通常从这里开始重复执行可能是一个计时器。当服务停止时,将调用OnStop方法。这个article可能是一个很好的起点。
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
}
答案 1 :(得分:2)
代码在OnStart()
protected override void OnStart(string[] args)
{
// Equivalent of Main()
// Run threads here before timeout so OS knows it has started
}
您通常从另一个函数启动一个线程,以便OnStart()
可以返回并且服务可以启动。
与OnStop
和OnShutdown
等相同,您可以清理所有内容。
答案 2 :(得分:0)
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);
}
}