SOCKET问题请教,并发达不到要求,不知道瓶颈在哪。 本帖最后由 socket_123 于 2009-11-23 17:10:05 编辑 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 XXXAsync系列啊!你呼唤青龙白虎兄来帮你解决吧,他这个系列搞得太熟了 up一下,性能方面,数据库的影响会很大的。检查一下数据库的设计和sql语句 瓶颈很可能是在RaiseEvent的调用上,就贴出来的代码上,没什么问题,不过RaiseEvent是外部传递的,而且内部是同步调用,会阻塞当前操作的,你可以考虑改为异步调用,比如 public void RaiseEvent(string sMsg) { if (MsgSend != null) { string _sMsg = sMsg; MsgSend.BeginInvoke(sMsg,null,null); } }不过如果传递的方法内部涉及到UI控件,还需要在方法内使用委托调用来操作,通过Control.InvokeRequired来判断是否要通过Control来回调执行。 我觉得还是把RaiseEvent(state.sb.ToString());注释掉,测试下速度。如果效率提高了。再改成异步或者是线程调用。 thread t=new thread(RaiseEvent); 对于每个Socket连接,应该单独使用各自的数据库连接,让数据库来实现并发控制。 C# Winform中,当datagridview中数据行未填满时,怎么用用空白行填充。(像Excel那样的空白表格) panel 滚动问题 c/s中的查询问题 求:博客投票机器人原理 大家好,我散分 孟子E章,思归大哥等掌门,指点一下 如何才能创建和保存单色位图啊?得是能够创建graphics的。 [1000分]如何去掉控件的Text属性前的@ 请教低级的语法问题,好事者请进。 制作一个窗体程序 通过treeview的tag查询这个节点 高手快点看过来!速解决的疑难问题
你呼唤青龙白虎兄来帮你解决吧,他这个系列搞得太熟了
public void RaiseEvent(string sMsg)
{
if (MsgSend != null)
{
string _sMsg = sMsg;
MsgSend.BeginInvoke(sMsg,null,null);
}
}
不过如果传递的方法内部涉及到UI控件,还需要在方法内使用委托调用来操作,通过Control.InvokeRequired来判断是否要通过Control来回调执行。
我觉得还是把RaiseEvent(state.sb.ToString());注释掉,测试下速度。如果效率提高了。
再改成异步或者是线程调用。
thread t=new thread(RaiseEvent);