首页 新闻 会员 周边

c# 编写windows服务问题

0
悬赏园豆:10 [已解决问题] 解决于 2020-04-09 17:38

c# 编写的windows服务,线程设置为后台线程,关闭服务的时候会自动关闭么?

lllrrrkkk的主页 lllrrrkkk | 初学一级 | 园豆:17
提问于:2017-01-22 15:38
< >
分享
最佳答案
0

1、当在主线程中创建了一个线程,那么该线程的IsBackground默认是设置为FALSE的。

2、当主线程退出的时候,IsBackground=FALSE的线程还会继续执行下去,直到线程执行结束。

3、只有IsBackground=TRUE的线程才会随着主线程的退出而退出。

4、当初始化一个线程,把Thread.IsBackground=true的时候,指示该线程为后台线程。后台线程将会随着主线程的退出而退出。

5、原理:只要所有前台线程都终止后,CLR就会对每一个活在的后台线程调用Abort()来彻底终止应用程序。

收获园豆:10
需要GIS小工具找我 | 菜鸟二级 |园豆:214 | 2017-01-22 15:43
其他回答(3)
0

线程属于进程.

进程都没了.哪来的线程.

 

吴瑞祥 | 园豆:29449 (高人七级) | 2017-01-22 15:41

那为什么有时候还要在关闭程序的时候写个关闭线程的代码呢?

支持(0) 反对(0) lllrrrkkk | 园豆:17 (初学一级) | 2017-01-22 15:47

@lllrrrkkk: 这个要看实际情况.你举个例子才能说

支持(0) 反对(0) 吴瑞祥 | 园豆:29449 (高人七级) | 2017-01-22 15:49
0

服务程序是没有UI的,哪来的前台线程。

数据酷软件 | 园豆:130 (初学一级) | 2020-04-10 14:24
0

主线程是前台线程,能保证一直运行不结束。多线程开IsBackground=true,自动跑完就结束了吧,或者你可以在停止之前写个running=false,子线程判断是否执行false的时候就自动结束掉。

李0539 | 园豆:442 (菜鸟二级) | 2020-04-10 17:19
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册