我是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()还没有完成复制。 任何想法或帮助都是最受欢迎的!
答案 0 :(得分:0)
您可以使用ServiceController课程。
您可以使用ServiceController类连接并控制 现有服务的行为。当您创建一个实例时 ServiceController类,您设置其属性,以便它与a进行交互 特定的Windows服务。然后你可以用这个类开始,停止, 以及操纵服务。
一些建议
您可以从main方法同步调用方法A(),以便后续服务start()代码仅在A()完成后执行。
如果没有限制并且您可以访问A()所在的代码,为什么不将Windows服务start()逻辑移动到方法A(),可能您可以放置逻辑在方法A()
private void SomeMethod()
{
A();
ServiceController controller = new ServiceController("WindowsServiceName");
controller.Start();
}