C#线程运行时,句柄数不断地增加。

csdn小虫 2010-03-18 11:03:23
这个是线程的执行方法。是一个死循环。
private void ThreadTask()
{
int i = 0;
while (true)
{
richTextBox1.Invoke(new ShowInfoDelegate(ShowInfo), new object[] { i.ToString() });
//ShowInfo(string sInfo) 往richTextBox1输出信息。
i++;

if (i == 10)
{
i = 0;
}
Thread.Sleep(100);
}
}

一个线程中,执行的方法是一个死循环 ,不断往richTextBox输出信息。
因为要 控制窗体的控件。
所以我 new 一个委托。

但是 程序运行时候 句柄数 不断地增加呀

该如何做呢????
...全文
1263 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
doudtw123 2010-07-08
  • 打赏
  • 举报
回复
123
csdn小虫 2010-03-22
  • 打赏
  • 举报
回复
没去看高位的。的确不会无限制增加。增加1 2百后自动会降下来!
结贴给分!
  • 打赏
  • 举报
回复
把你的while循环,放到ShowInfoDelegate去做,就OK了
你的richTextBox1.Invoke说白了就是系统自动创建一个线程到它的线程池中,所以句柄数会增加。还有,它不会无限制增加。系统默认是250个左右的句柄数。你的ShowInfoDelegate执行完了,系统也会自动回收空闲的线程。

8,834

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 组件/控件开发
社区管理员
  • 组件/控件开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧