Silverlight의 TCP 통신을 보면서 Silverlight 런타임에 비동기 메서드 만있는 System.Net.Sockets.Socket 클래스를 사용해야했습니다.Socket.SendAsync 스레드가 효과적으로 안전합니까?
두 스레드가 소켓 인스턴스에서 SendAsync를 매우 짧은 시간에 호출하면 어떻게되는지 궁금합니다.
내 걱정은 TCP 채널을 통과하는 섞여있는 바이트가없는 것입니다.
비동기 방식으로 구현 메시지가 단일 스레드가 대기열에서 대기열에 대기열에 놓이기 때문에 아무 것도 발생하지 않습니다 (전선에서 메시지의 내용을 혼합 함).
그러나 확실하지 않고 MSDN이 메서드의 설명에 아무 것도 진술하지 않습니다. 누구이든지 이 확실합니까?
EDIT1 : 아니, 같은가 SendAsync를 호출하기 전에 객체에 잠금이 실제로 전송 된 데이터를 데이터를하지 보낼 수있는 요청을 직렬화하기 때문에 도움이되지 않습니다
lock(this._syncObj)
{
this._socket.SendAsync(arguments);
}
.