方法完成后才启动Windows服务

时间:2014-09-15 08:54:19

标签: c# methods service

我是c#的初学者,需要帮助解决以下问题。 在我的程序中,我想启动一个服务,但只有在方法完成后才能启动。例如,

    {
       // A method which copies file
       A(); 
       // A service that uses the copied files in function A()
       ServiceController service = new ServiceController("ServiceName"); 
       service.Start();
    }

问题是该服务已经启动,但方法A()还没有完成复制。 任何想法或帮助都是最受欢迎的!

1 个答案:

答案 0 :(得分:0)

您可以使用ServiceController课程。

  

您可以使用ServiceController类连接并控制   现有服务的行为。当您创建一个实例时   ServiceController类,您设置其属性,以便它与a进行交互   特定的Windows服务。然后你可以用这个类开始,停止,   以及操纵服务。

一些建议

  1. 您可以从main方法同步调用方法A(),以便后续服务start()代码仅在A()完成后执行。

  2. 如果没有限制并且您可以访问A()所在的代码,为什么不将Windows服务start()逻辑移动到方法A(),可能您可以放置​​逻辑在方法A()

  3. 的最后
    private void SomeMethod()
    {
      A();
    
      ServiceController controller = new ServiceController("WindowsServiceName");
      controller.Start();
    }