我正在C#中构建Windows服务,并且有一个名为OnStart的方法,我所有的业务逻辑都在一个名为code.cs的文件中,如何告诉OnStart方法在code.cs中调用stater方法“starter” ?

/// <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);
}

最佳答案

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返回。

关于c# - C#-使用OnStart方法调用线程,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/6455966/

10-11 22:52