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

标签 c# .net windows

我正在用 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/

相关文章:

c# - 开放实例委托(delegate)上的协变实例类型

java - 无法获取 Windows ProductId key ,但可以获取 ProductName key

windows - 如何将变量设置为Windows上父目录的路径?

windows - 在windbg中找不到符号路径

c# - 无法使用 Microsoft Owiin selfhost 获取 WebSocket 请求

用于下载图像的 c# foreach 循环只工作一次

c# - 如果不存在,是否创建数据库文件 (.sdf)?

c# - 打开和保存文件对话框

c# - 将 Last 属性添加到 System.Array 的最佳方法是什么?

.net - 截断 ToolStripStatusLabel 而不是隐藏它