我正在用 C# 构建一个 Windows 服务,我有一个名为 OnStart 的方法,我所有的业务逻辑都在一个名为 code.cs 的文件中,我如何告诉 OnStart 方法调用 stater 方法“starter”代码.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);
}
最佳答案
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# - 使用 OnStart 方法调用线程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6455966/