本帖最后由 socket_123 于 2009-11-23 17:10:05 编辑

解决方案 »

  1.   

    XXXAsync系列啊!
    你呼唤青龙白虎兄来帮你解决吧,他这个系列搞得太熟了
      

  2.   

    up一下,性能方面,数据库的影响会很大的。检查一下数据库的设计和sql语句
      

  3.   

    瓶颈很可能是在RaiseEvent的调用上,就贴出来的代码上,没什么问题,不过RaiseEvent是外部传递的,而且内部是同步调用,会阻塞当前操作的,你可以考虑改为异步调用,比如
            public void RaiseEvent(string sMsg)
            {
                if (MsgSend != null)
                {
                    string _sMsg = sMsg;
                    MsgSend.BeginInvoke(sMsg,null,null);
                }
            }
    不过如果传递的方法内部涉及到UI控件,还需要在方法内使用委托调用来操作,通过Control.InvokeRequired来判断是否要通过Control来回调执行。
      

  4.   


    我觉得还是把RaiseEvent(state.sb.ToString());注释掉,测试下速度。如果效率提高了。
    再改成异步或者是线程调用。  
    thread t=new thread(RaiseEvent);
      

  5.   

    对于每个Socket连接,应该单独使用各自的数据库连接,让数据库来实现并发控制。