从通过TCP获取数据的线程写入RichTextBox
本文关键字:线程 RichTextBox 数据 TCP 获取 | 更新日期: 2023-09-27 18:03:08
我已经开始将基于控制台的TCP客户机版本转换为GUI。我承认,我不擅长线程,只懂一点c#。我已经设法让一切工作,除了点;客户端发送另一台PC(服务器)客户端的IP,这样它就可以连接回发送数据,通常它会用我设置的字符串来回复:"reply INIT",这表明我已经从另一台PC接收到数据。然而,当试图将此写入富文本框/设置标签的数据,没有工作;它说它不是空的,但我似乎不能设置任何GUI元素使用线程中的变量。
public void Receive()
{
try
{
byte[] ReceiPacket = new byte[1000];
Form1.Reciever.Read(ReceiPacket, 0, ReceiPacket.Length);
Form1.Reciever.Flush();
string Command = Encoding.ASCII.GetString(ReceiPacket);
string[] CommandData = System.Text.RegularExpressions.Regex.Split(Command, ">");
try
{
string LoggingText = CommandData[1].ToString();
WriteToLog(LoggingText, "Green");
}
catch
{
}
}
catch
{
WriteToLog("Error Receiving!", "Red");
}
}
我已经删除了一些代码来清理它,但那是用来接收东西的线程。
(布局)服务器将回复如下内容:string>whatever>我使用regex来区分命令(字符串)和内容(无论什么)。
SORTED!
我只是把我想要运行的东西放在里面,它就工作了!
this.Invoke((MethodInvoker)delegate
{
WriteToLog("Testing", "Red");
});