2010-03-11 5 views
3

양방향 통신 (PipeDirection.InOut) 용으로 설정된 응용 프로그램에 NamedPipeClientStream 인스턴스가 있습니다. 또한 두 개의 스레드, 읽기 스레드 및 쓰기 스레드가 있습니다.NamePipeClientStream에 대한 동시 읽기 및 쓰기

읽기 스레드가 NamedPipeClientStream.Read 메서드 만 호출하도록하고 쓰기 스레드가 NamedPipeClientStream.Write 메서드 만 호출하도록하고 싶습니다. 그들은 결코 서로 다른 메소드를 호출하지 않을 것이지만 동시에 파이프 인스턴스를 호출 할 수도 있습니다.

NamedPipeClientStream에 대한 설명서를 찾았습니다. 공용 정적 메서드는 스레드로부터 안전하지만 인스턴스 메서드는 스레드로부터 안전하다는 보장이 없습니다.

내 질문은 두 개의 스레드가 파이프 인스턴스에서 동시에 두 가지 다른 메서드 (읽기 및 쓰기)를 호출하도록하는 것이 안전하지 않습니까? 그리고 인스턴스 메소드 스레드 안전성은 동일한 메소드를 호출하는 별도의 스레드에만 적용되고 읽기 및 쓰기와 같은 별도의 메소드를 호출하는 별도의 스레드에는 적용되지 않습니까?

감사합니다.

답변

4

예, 문제가 없습니다. PipeStream.Read 및 Write 모두 기본 Windows API를 직접 호출하므로 ReadFile 및 WriteFile은 스레드로부터 안전합니다.

+0

우수합니다, 이것은 내가 알아야 할 필요가있는 것입니다. 감사! – Chris