.net - 如果 Windows 服务在停止时不退出线程会发生什么?

标签 .net multithreading c#-4.0 windows-services

我有一个运行多个线程的 .NET Windows 服务。开发人员向其中添加了一些新线程,但忘记添加代码以在服务停止之前退出线程。当我停止服务时,它似乎正常停止,但服务停止后exe进程继续运行几秒钟。在此期间发生了什么以及线程发生了什么?

最佳答案

如果您不终止线程,而是正确处理 ServiceStop 消息,则其他线程将继续运行约 20 秒,然后操作系统终止服务进程,并在此过程中终止线程。

一般来说,似乎没有任何伤害。

关于.net - 如果 Windows 服务在停止时不退出线程会发生什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14245089/

相关文章:

c# - 如何提供凭据以在属于另一个域的服务器上执行查询?

c# - 从cs页面禁用输入类型单选按钮单击并使用js向用户发送警报?

.net - 为什么 Visual Studio 会在下一行而不是错误行中显示我的一些异常?

multithreading - wglMakeCurrent,绘图和多线程会引起比赛吗?

wpf - SMO : Restore failed for Server '.'

c# - Winforms - 在另一个线程中调用方法

wpf - 有没有办法通过在代码中完成的键绑定(bind)将参数传递给命令?

c# - 关系数据库和 OO 语言

python - 当函数处于事件状态时终止脚本

java - 一次写入的数组/集合/映射内容的安全发布