VerySource

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
123
返回列表 发新帖
楼主: hitone

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

[复制链接]

2

主题

23

帖子

15.00

积分

新手上路

Rank: 1

积分
15.00
 楼主| 发表于 2020-6-2 10:15:02 | 显示全部楼层
因为我的程序是个服务器端,需要不断的新建线程来处理客户端的请求,如果等待压力很大的话,句柄又不释放,就会占用系统资源,目前已经用线程池来解决这个问题。


回复

使用道具 举报

0

主题

6

帖子

6.00

积分

新手上路

Rank: 1

积分
6.00
发表于 2020-6-6 01:15:01 | 显示全部楼层
线程使用后要记得释放资源:
osThread.Close();  //or  osThread.Kill();
回复

使用道具 举报

0

主题

6

帖子

6.00

积分

新手上路

Rank: 1

积分
6.00
发表于 2020-6-6 20:30:01 | 显示全部楼层
嘿嘿,不好意思,我把线程看成了进程。
线程中断方法是这样的:
osThread.Join();
osThread.Abort();

最好在线程开始前再加上这句:
osThread.IsBackground=true;
osThread.Start();
回复

使用道具 举报

2

主题

23

帖子

15.00

积分

新手上路

Rank: 1

积分
15.00
 楼主| 发表于 2020-6-7 06:45:02 | 显示全部楼层
ok  我会测试一下看看
回复

使用道具 举报

0

主题

1

帖子

2.00

积分

新手上路

Rank: 1

积分
2.00
发表于 2020-6-11 08:30:01 | 显示全部楼层
我用线程的时候不用回收的,好像当方法运行完之后会自动释放的
回复

使用道具 举报

0

主题

6

帖子

6.00

积分

新手上路

Rank: 1

积分
6.00
发表于 2020-6-11 14:15:01 | 显示全部楼层
提醒下:
线程变量最好是定义在另一个窗体或者模块里运行,这样在关闭那个窗体的事件里面:
osThread.Join();
osThread.Abort();
并在窗体关闭后释放资源窗体资源:frm.Dispose();
一般线程就会随之释放资源。
回复

使用道具 举报

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

本版积分规则

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

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