做的是某个游戏的挂机程序,游戏的链接方式TCP,而且每隔1分钟有一个心跳包的发送。要保持在线并要接收发送些邮件内容本机Win7 32系统,减小线程开栈的大小,可以开5000个线程左右。
现在问题是,如果我只保持在线的话,一个账号一个线程,定时发送心跳包就可以。但现在要接收些消息并且发送些消息,所有就要Receive,如果是同步的话,那么Receive因为要阻塞线程,就要独占一个线程才行,加上心跳包的线程,一个账号要耗费两个线程了。如果是异步,看文档说使用异步的时候会自动开辟一个后台线程,这样的话也耗费两个线程请问有木有什么好的解决方案,尽可能的少开线程多挂号啊?
解决方案 »
- DataRow findrow = ds.Tables["供方进料不合格统计表"].NewRow(); 这种方法为什么不能使用两次
- 我在WINFORM 里用到了文本框,不能让它里面输入非法字符但是,可以输入汉字及其它的字符
- 30分问个简单的WINFORM控件问题(结帖一直是100%)
- vs 2008 team suit 中的数据库是什么啊?
- 请问多界面的windows应用程序是什么思路?
- 如何把存放在数据库中的XML文件读入DataSet中!
- javascript怎么获得Input 的 maxlenth?????请各位大虾帮帮忙 在线等 解决马上结贴
- 谁知道有哪个比较出名的网站是用.net做的吗?
- error cs 1002,看我下面源码,想做一个DLL,哪儿少;了?
- C#中鼠标在菜单岚山一冬会触发什么事件?
- SQL求助, 过程需要类型为 'ntext/nchar/nvarchar' 的参数 '@statement'。
- 求C#链接exchange serve 登录outlook代码
一个线程开启至少1M占内存,5000个就是5G内存!WIN7系统本来就占很大内存,那机器可不跑死了,你机器多大内存滴?
开几千个线程,上下文切换就会消耗大量的CPU