si un threadA está durmiendo, ¿cómo otro thread threadB invocar threadA para comenzar? Proporcione un ejemplo si es posible.Iniciando un hilo que duerme en .NET
Respuesta
En lugar de dormir, querrá crear un EventWaitHandle y usar WaitOne con un tiempo de espera agotado.
Cuando desee que el subproceso se active temprano, simplemente establecerá el evento como señalado.
En primer lugar crear el EventWaitHandle
:
wakeUpEvent = new EventWaitHandle(false, EventResetMode.ManualReset);
Luego, en el hilo:
wakeUpEvent.WaitOne(new TimeSpan(1, 0, 0));
Cuando el programa principal quiere despertar el hilo principios:
wakeUpEvent.Set();
Nota: Puede configurar el evento para restablecimiento automático o restablecimiento manual. El reinicio automático significa que una vez que WaitOne regresa del evento, lo establecerá de nuevo en no señalizado. Esto es útil si está en un bucle y señala múltiples veces.
Un hilo se puede iniciar esperando en un WaitObject y teniendo el otro hilo llamando al método Set en él. Mira el WaitHandle.WaitOne method.
Here's artículo que también puede ser de ayuda.
- 1. Interrumpir un hilo que duerme
- 2. Interrumpir o detener un hilo que duerme
- 3. ¿Iniciando un hilo detenido?
- 4. ¿Hay alguna manera de despertar un hilo que duerme?
- 5. iniciando un nuevo hilo en el servlet
- 6. time.sleep - ¿Duerme el hilo o el proceso?
- 7. excepciones que cogen en un hilo .NET
- 8. Iniciando un hilo para cada bucle interno en OpenMP
- 9. ¿Iniciando un proceso en Java?
- 10. iniciando un proceso desde un servicio Windows .NET
- 11. C# Duerme durante 500 milisegundos
- 12. ¿Cuál es la mejor manera de hacer que un hilo indique otro hilo en .NET?
- 13. Iniciando un servidor node.js
- 14. ¿Por qué el hilo no se interrumpe cuando duerme en el bloque
- 15. duerme hasta que la condición sea verdadera en ruby
- 16. .net Observable 'ObserveOn' un hilo de fondo
- 17. Wifi duerme, incluso con cerradura
- 18. Iniciando múltiples hilos y haciendo un seguimiento de ellos desde mi aplicación .NET
- 19. boost :: asio iniciando diferentes servicios en hilos?
- 20. C# ¿El subproceso no duerme?
- 21. Iniciando un programa C++ oculto
- 22. iniciando sesión en scala
- 23. ¿Qué impide que se recolecte un hilo en C#?
- 24. hilo generic.list y generic.dictionary seguro en .NET
- 25. Cómo medir el rendimiento de un hilo administrado en .NET
- 26. Reinicio de un hilo en .NET (usando C#)
- 27. hilo fino de piscina Bibliotecas en .NET
- 28. Cómo reiniciar un hilo en C# .Net 4.0?
- 29. Iniciando sesión en DBCP
- 30. Práctica recomendada para manejar excepciones, que se lanzan dentro del bloque catch, en un hilo. (.NET)
Si desea que el subproceso se detenga automáticamente y escriba manualmente: wakeUpEvent = new EventWaitHandle (false, EventResetMode.ManualReset | EventResetMode.AutoReset); ahora, si el temporizador finaliza, el hilo volverá a funcionar, y también puede detenerlo manualmente. – aharon