Я начал конвертировать консольную версию TCP-клиента в GUI. Я признаю, что я не очень хорошо разбираюсь в потоках и знаю только немного C#. Мне удалось разобрать все, что было раньше; Клиент отправляет другой ПК (сервер) IP-адрес клиента, чтобы затем он мог вернуться обратно, чтобы отправить данные обратно. Обычно он ответил бы на строку, на которую я ее установил: «REPLY INIT», это показывает мне, что я получил данные из другой ПК. Однако при попытке записать это в богатое текстовое поле/установить метки с данными, ничего не работает; он говорит, что это не null, но я не могу установить какие-либо элементы GUI, используя переменные в потоке.C# WinForms Запись в RichTextBox из потока, который получает данные по TCP
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");
}
}
Я удалил некоторый код, чтобы немного почистить его, но это поток, используемый для получения материала.
(Макет)
Сервер ответит что-то вроде следующего: строка> любой> я использовал регулярное выражение для различения между командной строки() и содержание (что угодно).