我有一个奇怪的问题。我正在为我用 C# 编写的程序使用 SocketIO4Net 客户端。该程序与用 NodeJS 和 SocketIO 编写的服务器通信。我可以使用 SocketIO4NET 客户端中的 'socket.emit()' 和 'socket.On()' 方法在我的程序和服务器之间发送和接收数据。但是,当我尝试使用从服务器接收到的数据更新 GUI 中的文本框时,什么也没有发生。但是,如果我使用 'MessageBox.Show()' 方法,我可以显示我收到的数据。我正在使用以下代码来接收数据:
public Form1()
{
InitializeComponent();
socket = new Client("http://127.0.0.1:80/");
socket.On("message", (data) =>
{
String msg = data.Json.Args[0].ToString();
MessageBox.Show(msg,"Received Data");
rxtxtbox.Text = msg;
});
socket.Connect();
}
对于发送数据:
private void sendbtn_Click(object sender, EventArgs e)
{
String msg = msgtxtbox.Text.ToString();
socket.Emit("private message", msg);
}
上面的代码工作正常。但它没有更新 TextBox 'rxtxtbox'。如果我移动“rxtxtbox.Text = msg;”行 在“MessageBox.Show();”之上,那么在接收到“message”事件时不会发生任何事情。我尝试设置断点并查看变量“msg”的值及其正常。我尝试声明另一个函数只是为了更新文本框并将“msg”传递给它,但仍然没有结果!我认为这与等待“消息”事件有关吗?我尝试了“Application.DoEvents()”和“rxtxtbox.Refresh()”方法,但仍然没有运气!我是 C# 的新手。请帮忙!