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()可以返回并且可以启动服务。

OnStop等相同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 回答