我有简单的表单应用程序,该应用程序包含单独的套接字任务。此任务处理向服务器发送消息的
send(string)
过程。服务器向客户端发送回消息,任务接收消息并引发事件,调用最后一个onReceived() { Console.WriteLine(“{0}”, e.Message)}
。这一切都非常有效。
我的问题是:为什么这个过程不起作用,什么时候在
onReceived
事件过程中添加了richEditBox的代码?。
onReceived
与 Console.Writeline(“Message”);
有效。
onReceived
与任何 RichEditBox
对象均无效。
例如,这不起作用:
communicator.onReceived(object sender, ExtraEventArgs e)
{
richTextBox.AppendText(“Message”);
}
为了进行全面审查,您使用的代码必须包含在问题中。
无论如何,我认为如何管理“分离套接字任务”很重要。如果您在程序中的某个位置使用“BackgroundWorker”,请改用“Timer”。在控制台中调用简单的写入命令与像 RichEditBox 这样更复杂的表单控件有很大不同。
如果您使用无限循环在循环内不时调用“Application.DoEvents()”,那就太好了。可能是您的代码中的某个地方阻塞并干扰了 Windows 窗体的正常功能。