CSharp - 当创建进程的进程结束时,它们是否停止?

  显示原文与译文双语对照的内容

我有一个 Windows Service,当它开始时,它创建了许多英镑的。 每个backgroundworker在内存中监视自己的队列,以处理挂起的项。

created创建 backgroundworkers Windows service--英镑的进程英镑这些后台工人停止或者离开孤立状态,仍在运行 orphan 。

我需要写代码stop当 Windows 服务即将停止时停止backgropund工作

时间: 作者:

IsBackground use使用线程,这意味着当所有非后台线程都终止时,它将终止。

如果你的rtc将在它的完成之前不应该关闭它,那么它应该设置为 Thread.CurrentThread.IsBackground = false 然后将它的设置为 true,并在完成后将它的设置回。

编辑:一个进程关闭( 未处理的异常,通过任务管理器或者替换进程杀死,等等 ) 将结束所有线程的成本。 相反,结束所有非后台线程将结束进程( 把所有的背景线索都拿出来) 。 这是你需要担心的是,在请求流程终止( 服务停止,最后一个可以见窗口)的用户输入时。

作者:

在. NET 应用程序和服务中,主线程终止所有 子级 后台线程也终止。

...