我正在围绕TcpClient
编写一个包装类,当数据到达时会引发一个事件。我正在使用BeginRead
和EndRead
,但是当父表单处理事件时,它不在UI线程上运行。我需要使用委托并将上下文传递给回调吗?我认为回调是一种避免这种情况的方法......
void ReadCallback(IAsyncResult ar)
{
int length = _tcpClient.GetStream().EndRead(ar);
_stringBuilder.Append(ByteArrayToString(_buffer, length));
BeginRead();
OnStringArrival(EventArgs.Empty);
}