控制台输出正常,但 RichEditBox 阻塞

问题描述 投票:0回答:1

我有简单的表单应用程序,该应用程序包含单独的套接字任务。此任务处理向服务器发送消息的

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”);
}
c# winforms events task
1个回答
0
投票

为了进行全面审查,您使用的代码必须包含在问题中。

无论如何,我认为如何管理“分离套接字任务”很重要。如果您在程序中的某个位置使用“BackgroundWorker”,请改用“Timer”。在控制台中调用简单的写入命令与像 RichEditBox 这样更复杂的表单控件有很大不同。

如果您使用无限循环在循环内不时调用“Application.DoEvents()”,那就太好了。可能是您的代码中的某个地方阻塞并干扰了 Windows 窗体的正常功能。

© www.soinside.com 2019 - 2024. All rights reserved.