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
6
A
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.
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
- 1. Bloquear mutex en un hilo y desbloquearlo en el otro
- 2. Ejecutar un control WPF en otro hilo
- 3. ¿Cómo puedo matar un hilo de otro hilo en Java?
- 4. ¿Escribir en un TextBox desde otro hilo?
- 5. Cómo bloquear eventos NSView en otro NSView?
- 6. Ejecuta MBProgressHUD en otro hilo?
- 7. Volcado de hilo Java: BLOQUEADO hilo sin "esperar para bloquear ..."
- 8. Agregar un control en un formulario, desde otro Hilo
- 9. Método de ejecución en el hilo principal de otro hilo
- 10. Código de ejecución en el hilo principal de otro hilo
- 11. ventana de Creación en otro hilo (no hilo principal)
- 12. ¿Espera sin bloquear el hilo? - ¿Cómo?
- 13. ¿Cómo depurar la excepción en otro hilo?
- 14. cómo ejecutar un hilo después de completar otro hilo
- 15. Actualizar un ObservableCollection de otro hilo
- 16. ¿Cómo unir un hilo que se bloquea al bloquear IO?
- 17. Obtener un rastreo de otro hilo
- 18. Bloquear en un objeto
- 19. Dormir un hilo hasta que se atienda un evento en otro hilo
- 20. Cómo cancelo un socket.recv() desde otro hilo en Python
- 21. Hilo de reposo de otro
- 22. detectando excepciones de otro hilo
- 23. ¿Cuál es la mejor manera de hacer que un hilo indique otro hilo en .NET?
- 24. En Java, si un hilo se mata, ¿qué pasará con el otro hilo?
- 25. Cómo pasar la excepción de un hilo a otro (el que llama) el hilo en Delphi?
- 26. Java: ¿cómo atrapo InterruptedException en un hilo, cuando es interrumpido por otro hilo?
- 27. ¿Cómo esperar a que termine un hilo antes de que comience otro hilo en Java/Android?
- 28. ¿Devolviendo objetos de otro hilo?
- 29. Bloquear() en un método estático
- 30. Enhebrado en Java: cómo bloquear un objeto?
Gracias, eso funcionó. – Nikhil