C#Windowsサービスの開発を依頼されました。しかし、私はユーザー入力を使用してGUIを作成することに慣れています。
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
and etc と同じで、OnShutdown
すべてをクリーンアップします。
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);
}
}