form1上有一个richtextbox,名为rich1,还有一个rich2
还有一个winsocket控件,用来从服务端获取消息,名为tcpsocket1rich1用来显示,rich2用来输入rich1不断地有新的信息显示,而且非常多,rich的信息来自与tcpSocket1.GetData 每当有新信息显示的时候就卡住,要等待信息显示完才能再次在rich2中输入信息,而且这个时候鼠标也不能动,必须等rich1信息显示完才行。我想问问,如何才能解决这个问题,rich1显示它的消息,不影响其他操作。小弟跪求了,求求各位老大帮忙解决下吧!!!

解决方案 »

  1.   

    //我想问问,如何才能解决这个问题,rich1显示它的消息,不影响其他操作。用多线程试试
      

  2.   

    在tcpSocket1.GetData 后面加一行 DoEvents
      

  3.   

    请问 在tcpSocket1.GetData 后面加一行 DoEvents 是什么意思呢,为什么能解决小弟这个问题呢,大哥能回答下吗
      

  4.   

    //请问 在tcpSocket1.GetData 后面加一行 DoEvents 是什么意思呢加一行DoEvents的意思是将控制权交还给系统,不过需要提醒你的是DoEvents可能引发不可预料的错误
      

  5.   

    还是不明白为什么加了doevents就能解决我的问题,我问题关键是处理并显示 tcpSocket1.GetData 的时候会卡住,鼠标和键盘不能输入,我想并行运行都不受影响,这样加
    doEvents就可以,我想不应该加在tcpSocket1.GetData 下面吧,我的代码是tcpSocket1.GetData sData1
    mod1.display(byval sData1) '这个过程来处理收到的消息并显示
                               '如果不显示就不会有这样的问题
    请问如果加doEvents后代码怎么写呢?
      

  6.   

    需要提醒你的是DoEvents可能引发不可预料的错误