2012-02-07 4 views
6

사용자로부터 요청을받을 수있는 것보다 게임 서버가 있습니다. 사용자는 조각 배치를 요청할 수 있습니다. 그런 다음 place 메소드는 일부 비동기 httpwebrequests (시간 초과 포함)를 생성하여 배치가 올바른지 확인합니다. 서버가 배치 요청을 받으면 잠글 잠금이 필요하며 웹 콜백에 의해 잠금이 해제됩니다. ReaderWriterLock을 사용 하겠지만 동일한 스레드에 있으면 웹 요청 콜백이 다른 스레드에서 발생하는 경우에만 작동합니다. 내가 사용해야 할 또 다른 자물쇠가 있습니까?한 스레드에서 잠그고 다른 스레드에서 해제

답변

9

a semaphore을 사용할 수 있습니다. 잠금 스레드가 허가를 얻습니다. 비동기 스레드가 허가를 해제합니다. 세마포어는 개별 스레드에 구속되지 않으므로 멋지다.

+0

감사합니다. – Nikhil

4

Semaphore을 사용할 수 있습니다. 매뉴얼에서 인용한다.

세마포어 클래스는 WaitOne 또는 Release 호출시 스레드 식별 정보를 적용하지 않습니다.

즉, 두 개의 다른 스레드에서 획득/해제하는 데 문제가 없어야합니다.

관련 문제