Потоковая безопасность System.Net.WebSockets.ClientWebSocket
В документе неясно о безопасности потоков System.Net.WebSockets.ClientWebSocket
учебный класс.
Безопасно ли называть SendAsync
метод из нескольких потоков одновременно?
0 ответов
Он достаточно потокобезопасен, чтобы выполнять некоторую работу.
Согласно источнику (кредит Майклу Кропату за его обсуждение на https://www.codetinkerer.com/2018/06/05/aspnet-core-websockets.html)
Безопасность потоков:
- Допускается параллельный вызов ReceiveAsync и SendAsync. Один из них может работать одновременно.
- Допустимо иметь ожидающий ReceiveAsync, пока вызывается CloseOutputAsync или CloseAsync.
- Попытка вызвать любые другие операции параллельно может привести к повреждению экземпляра. Попытка вызвать операцию отправки, пока другая выполняется, или операцию приема, пока другая выполняется, приведет к исключению.