问题描述
如何将多线程中接收数据处理的方法通过委托事件共用户使用呀!具体描述:一个TcpServer类主要是任务有启动服务、停止服务、接收连接的Socket(每接收一个Socket的建立一个线程对该Socket进行管理、线程调用的是Socket中的一个方法)Socket类:接收数据、发送数据等。注:将接收到的数据通过事件的方式委托到外面进行操作。如何做呀!还是这样的设计细路就有问题呀!!该如何设计呢!!!
解决方案
解决方案二:
参考:http://blog.csdn.net/zhiang75/archive/2004/08/16/75915.aspx
解决方案三:
把数据写入一个队列里
解决方案四:
與UI界面同步的方式有很多,例如可以發送自定義的消息實現.也可以如下publicdelegatevoidSockEvent(objectsender,SocketEventArgse);publicSockEventOnSockEvent;publicclassSockEventArgs{}privatevoidDoSocketEvent(){if(OnSockEvent!=null){SockEventArgse=newSockEventArgs();BeginInvoke(OnSockEvent,newobject[]{this,e});}}
解决方案五:
帮顶,关注...
解决方案六:
通过委托事件,委托出去没有问题,可是在委托事件中不能使用窗体的控件信息。this.Textbox1.Text="1111";调用这个的话就会报错!!!!
解决方案七:
通过委托事件,委托出去没有问题,可是在委托事件中不能使用窗体的控件信息。this.Textbox1.Text="1111";调用这个的话就会报错!!!!---------》调用控件的时候需要Invoke~~~~~~~
解决方案八:
例如这样delegatevoidSetTextCallback(stringtext);privatevoidSetText(stringtext){if(this.Textbox1.InvokeRequired){SetTextCallbackd=newSetTextCallback(SetText);this.Invoke(d,newobject[]{text});}else{this.Textbox1.Text=text;}}