C#-使用OnStart方法来调用线程

本文关键字:调用 线程 方法 使用 OnStart C#- | 更新日期: 2023-09-27 18:00:25

我正在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);
}

C#-使用OnStart方法来调用线程

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

您必须创建一个对象的实例,并在该实例上调用方法。

例如

CodeMyClass obj = new CodeMyClass();
obj.Starter();
//Replace CodeMyClass with the Type name. or if it is a single call the appropriate constructor.

希望这能有所帮助。