Я пишу класс-оболочку вокруг TcpClient
, который вызывает событие при поступлении данных. Я использую BeginRead
и EndRead
, но когда родительская форма обрабатывает событие, она не выполняется в потоке пользовательского интерфейса. Мне нужно использовать делегатов и передать контекст в обратный вызов? Я думал, что обратные вызовы были способом избежать этого ...
void ReadCallback(IAsyncResult ar)
{
int length = _tcpClient.GetStream().EndRead(ar);
_stringBuilder.Append(ByteArrayToString(_buffer, length));
BeginRead();
OnStringArrival(EventArgs.Empty);
}