Похоже, вам нужно использовать Invoke
при назначении свойства Text
вашего текстового поля, поскольку обновления элементов пользовательского интерфейса разрешены только из основного потока пользовательского интерфейса, и вы, вероятно, получаете сообщения связи TCP в другом потоке.
Вы можете сделать что-то вроде следующего:
private void UpdateText(string text)
{
if (textBox1.InvokeRequired)
textBox1.Invoke(new Action(() => UpdateText(text)));
else
textBox1.Text = text;
}
, который будет проверять, вызывается ли метод в потоке пользовательского интерфейса, и если нет, передавать запрос в поток пользовательского интерфейса перед обновлением текста.,Если вам нужно асинхронное поведение, вы можете использовать textBox1.BeginInvoke
вместо textBox1.Invoke
.
Для получения дополнительной информации см., Например, эту статью MSDN .