Использование .NET TcpClient
, если я вызвал асинхронный BeginRead()
в связанном сетевом потоке, могу ли я по-прежнему вызывать Write()
на этом потоке в другом потоке?Является ли TcpClient BeginRead/Send потоком безопасным?
Или я должен указать lock()
TcpClient
в код, который вызывается из BeginRead
и код, который отправляет?
Кроме того, если я закрыть TcpClient
с:
client.GetStream().Close();
client.Close();
ли я lock()
на TcpClient
, а?
Спасибо, я полностью пропустил это в MSDN, мой плохой - прошу прощения. На закрытии я ловил и обрабатывал исключение, но просто не был уверен, что это было изворотливым, поэтому спасибо за разъяснение, что все в порядке, поскольку это не документировано, насколько я могу судить. – iam
Да, это совершенно нормально, если вы попытаетесь написать исключение, если попытаетесь написать/прочитать из закрытого TcpClient. Вы увидите это во всех API-интерфейсах сокетов .NET. – Kazar