4

C#Windowsサービスの開発を依頼されました。しかし、私はユーザー入力を使用してGUIを作成することに慣れています。

Windowsサービスは自動化されているので、コードがどのように実行されるのか知りたいです。

どうすれば流れを制御できますか?

誰かが明確にすることができますか?ウィンドウサービスに関する情報はあまりありません...

4

3 に答える 3

2

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
  }
于 2012-11-07T15:54:21.110 に答える
2

コードはOnStart()

protected override void OnStart(string[] args)
{
    // Equivalent of Main()
    // Run threads here before timeout so OS knows it has started
}

通常、別の関数からスレッドを開始して、それOnStart()が返され、サービスが開始できるようにします。

OnStopand etc と同じで、OnShutdownすべてをクリーンアップします。

于 2012-11-07T15:54:23.970 に答える
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);
        }
    }
于 2014-05-29T12:03:37.180 に答える