前两个帖子发的比较失败,都是300分,却都不超过20个人回答...

zhuanshen712 2010-09-14 11:51:03
前两个帖子发的比较失败,都是300分,却都不超过20个人,可能是代码比较多,大家都懒得看
http://topic.csdn.net/u/20100913/18/3cefd0c9-f9c5-4f28-af87-5c99dd511a67.html 8个回帖(算我)
sp1234老大没看清题目
shishangdere_2007这位兄弟给的意见。。。

http://topic.csdn.net/u/20100913/18/47f18994-04ea-41cf-8f12-4e0ce0e72ec6.html 17个回帖(算我)
Sandy945牛气,一眼看出了问题所在。
wuyq11老大这个代码,搞的我晕头转向的,应该也是实例化的意思。
sp1234也有实例化的踪影,大家都是牛人。

上面两个贴还没结,希望大家能给点儿设计方面的意见。

大家说是不是比较失败?这个也是300分,不过代码比较少哦。。
问题是这样:
一个事件如果有多个侦听者注册的话,那么想用异步执行的方式,如下:
if ( someEvent!= null)
{
Delegate[] dels=someEvent.GetInvocationList();
foreach (Delegate del in dels)
{
someHander tim = (someHander)del;

tim.BeginInvoke(dtTime, null, null);
}
}
红色字体是相应的事件,蓝色字体是相应的委托。

问题是:如果注册事件的比较少的话,那线程数无所谓,如果有几百甚至几千个方法注册了事件,那么
Delegate[] dels=someEvent.GetInvocationList();
dels就是几百几千个啊,那线程不就要有几百几千个吗?大家有没有方法能减少这个线程数目啊?
我目前有个想法:可以确定一个线程数,比如说5个线程,让这5个线程去执行所有的dels,但是具体不知道该怎么做,请大家指点。
...全文
435 76 打赏 收藏 转发到动态 举报
写回复
用AI写文章
76 条回复
切换为时间正序
请发表友善的回复…
发表回复
zhuanshen712 2010-09-15
  • 打赏
  • 举报
回复
这个问题也搞定了,只要这样即可:
ThreadPool.SetMaxThreads(5, 5);

谢谢大家的关注了,一会儿结贴。尤其谢谢bclz_vs的提醒!
Dream83619 2010-09-15
  • 打赏
  • 举报
回复
不会有成千上万的线程的,begininvoke是clr在线程池中获得可用线程来执行的,我不知道线程池中线程的数量,但是cpu*2是比较好的线程数。
你可以在invoke函数中打印出CurrentThread.Id来获得threadid,看一下一共有多少个线程在执行。
波导终结者 2010-09-15
  • 打赏
  • 举报
回复
一个时钟滚
even0220 2010-09-15
  • 打赏
  • 举报
回复
纯支持。
yzf86211861 2010-09-15
  • 打赏
  • 举报
回复
帮顶 帮顶 帮顶 帮顶
unicode 2010-09-15
  • 打赏
  • 举报
回复
自己写个线程池管理吧,池子里的线程用完了就阻塞等待。工作线程完成任务了就release自己告诉线程池可以重新调用了
gs8716 2010-09-15
  • 打赏
  • 举报
回复

不是没有人看是看不懂,帮顶
xieruilong 2010-09-15
  • 打赏
  • 举报
回复
[Quote=引用 52 楼 zuoming120 的回复:]
顶,关注
[/Quote]

+1
zuoming120 2010-09-15
  • 打赏
  • 举报
回复
顶,关注
artwl_cn 2010-09-15
  • 打赏
  • 举报
回复
顶,关注
lilin8905 2010-09-15
  • 打赏
  • 举报
回复
进来膜拜 学习
mark620 2010-09-15
  • 打赏
  • 举报
回复
米娜Rose 2010-09-15
  • 打赏
  • 举报
回复
关注楼主。
嗨皮 2010-09-15
  • 打赏
  • 举报
回复
.net 菜鸟路过
快溜 2010-09-15
  • 打赏
  • 举报
回复
Shania2013 2010-09-15
  • 打赏
  • 举报
回复
一个关于delegate和ThreadPool的讨论
http://www.devnewsgroups.net/group/microsoft.public.dotnet.framework/topic61277.aspx
s370092561 2010-09-15
  • 打赏
  • 举报
回复
还是帮顶吧。。
银-魂 2010-09-15
  • 打赏
  • 举报
回复
帮顶,避免打酱油
zhuanshen712 2010-09-15
  • 打赏
  • 举报
回复
昨晚给一些大侠发信息,结果都没来看。自己顶。
加载更多回复(43)

62,046

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

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