2012-02-07 22 views
6

Tengo un servidor de juegos que puede recibir solicitudes de un usuario. Un usuario puede solicitar colocar piezas. El método de lugar genera algunas httpwebrequests asincrónicas (con tiempos de espera) para averiguar si la ubicación fue correcta. Quiero un bloqueo que se bloqueará cuando el servidor reciba la solicitud de ubicación, y será desbloqueado por la devolución de llamada web. Yo usaría un ReaderWriterLock, pero eso solo funciona si permanezco en el mismo hilo, y las devoluciones de solicitudes de web ocurren en diferentes hilos. ¿Hay algún otro candado que deba usar?Bloquear en un hilo, soltando en otro

Respuesta

9

Puede usar a semaphore. El hilo de bloqueo adquiere un permiso. El subproceso asincrónico libera un permiso. Los semáforos son ingeniosos porque no están vinculados a hilos individuales.

+0

Gracias, eso funcionó. – Nikhil

4

Puede usar Semaphore. Cita del manual;

La clase de semáforo no impone la identidad del subproceso en las llamadas a WaitOne o Release.

En otras palabras, no debería tener problemas para adquirir/liberar desde dos subprocesos diferentes.

Cuestiones relacionadas