VerySource

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 3536|回复: 25

C# 创建线程 线程处理完 利用return 返回 但系统句柄始终不释放 在线等大虾指教!

[复制链接]

2

主题

23

帖子

15.00

积分

新手上路

Rank: 1

积分
15.00
发表于 2020-2-9 00:00:01 | 显示全部楼层 |阅读模式
使用如下代码创建线程
osThread = new Thread(new ThreadStart(oService.SocketRun));
osThread.Start();
oService.SocketRun 完成任务后利用 return 返回
发现由于创建线程增加的 句柄并不释放,请问大虾们有何办法 释放句柄,或者是由什么其它方法由子线程自动 终止 ,而不需要通过父线程来终止? 多谢了
回复

使用道具 举报

0

主题

15

帖子

10.00

积分

新手上路

Rank: 1

积分
10.00
发表于 2020-4-1 21:45:01 | 显示全部楼层
可以放在线程池里吧
回复

使用道具 举报

2

主题

23

帖子

15.00

积分

新手上路

Rank: 1

积分
15.00
 楼主| 发表于 2020-4-2 10:00:02 | 显示全部楼层
不用线程池 能不能解决句柄增长的问题呢?
回复

使用道具 举报

0

主题

9

帖子

8.00

积分

新手上路

Rank: 1

积分
8.00
发表于 2020-4-2 15:15:01 | 显示全部楼层
oService.SocketRun 完成任务后当然线程也就结束了,osThread不为空也是正常的,这个需要等GC来回收的。
回复

使用道具 举报

0

主题

110

帖子

63.00

积分

新手上路

Rank: 1

积分
63.00
发表于 2020-4-2 17:45:01 | 显示全部楼层
这个不用担心,会自动回收的..
回复

使用道具 举报

2

主题

23

帖子

15.00

积分

新手上路

Rank: 1

积分
15.00
 楼主| 发表于 2020-4-3 00:15:01 | 显示全部楼层
我观察了很长时间 有几个小时,发现 由于创建线程 增长的句柄数 并没有 由于运行时的垃圾回收 而 恢复
回复

使用道具 举报

0

主题

9

帖子

8.00

积分

新手上路

Rank: 1

积分
8.00
发表于 2020-4-4 19:15:01 | 显示全部楼层
调用GC.Collect();强制回收
回复

使用道具 举报

0

主题

27

帖子

21.00

积分

新手上路

Rank: 1

积分
21.00
发表于 2020-4-5 01:30:01 | 显示全部楼层
最好让线程自然结束,不用return
回复

使用道具 举报

0

主题

8

帖子

8.00

积分

新手上路

Rank: 1

积分
8.00
发表于 2020-4-5 17:30:02 | 显示全部楼层
return 会有什么问题吗?
回复

使用道具 举报

0

主题

9

帖子

8.00

积分

新手上路

Rank: 1

积分
8.00
发表于 2020-4-5 19:15:01 | 显示全部楼层
没有
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|CopyRight © 2008-2023|verysource.com ( 京ICP备17048824号-1 )

快速回复 返回顶部 返回列表