我正在使用C#构建Windows服务,并且我有一个名为OnStart的方法,我的所有业务逻辑都在一个名为code.cs的文件中,如何告诉OnStart方法调用stater方法“starter”in code.cs?
/// <summary>
/// OnStart: Put startup code here
/// - Start threads, get inital data, etc.
/// </summary>
/// <param name="args"></param>
protected override void OnStart(string[] args)
{
base.OnStart(args);
}
答案 0 :(得分:2)
OnStart需要返回才能让Windows知道服务已启动。您应该在OnStart中启动一个调用启动器的新线程。类似的东西:
protected override void OnStart(string[] args)
{
Thread MyThread = new Thread(new ThreadStart(MyThreadStarter));
MyThread.Start();
base.OnStart(args);
}
private void MyThreadStarter()
{
MyClass obj = new MyClass();
obj.Starter();
}
这假设您当前的Starter方法不会产生它自己的线程。关键是允许OnStart返回。
答案 1 :(得分:0)
您必须创建对象的实例并在实例上调用该方法。
E.g。
CodeMyClass obj = new CodeMyClass();
obj.Starter();
//Replace CodeMyClass with the Type name. or if it is a single call the appropriate constructor.
希望这有帮助。