![]() |
![]() |
![]() |
![]() |
![]() |
FTP | ![]() |
![]() |
CCD | ![]() |
![]() |
Buscar | ![]() |
![]() |
Trucos | ![]() |
![]() |
Trabajo | ![]() |
![]() |
Foros | ![]() |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
![]() |
|
Herramientas | Buscar en Tema | Desplegado |
|
#1
|
||||
|
||||
Lanzar 4 hilos simultáneos y esperarlos
Buenas amigos, tengo una aplicación que tiene 4 bucles que me congelan la aplicación y quiero meter cada bucle en un hilo para que trabajen simultáneos pero el problema es que necesito saber si alguno de los 4 bucles sale con false para si es así mostrar un mensaje de error y terminar los otros. La cosa es que me encuentro con varios problemas, lo primero es que si lanzo los 4 y espero con WaitForMultipleObjects ¿Como hago para desde un hilo detener al resto de hilos? ¿Algún ejemplo al respecto? Otra duda es que cada hilo debería incrementar un contador común para los 4 y supongo que para eso hay que usar semáforos o algo así pero no tengo ni idea de cómo hacer eso y se me ocurrió que como tengo un TProgressBar al que le puse el rango de 0 a 4 para que cada vez que termine un bucle incremente la barra y me preguntaba si sería suficiente con hacer eso desde los 4 hilos usando Synchronize o si al hacer eso desde los 4 hilos podría darme algún problema.
|
#2
|
||||
|
||||
Cita:
Cita:
Si lo usas correctamente, creo que puedes controlar lo que necesitas. También revisa el WaitFor para lo contrario (tal vez en algun caso debes tener algo esperando hasta que consigas finalizarlos todos). Cita:
__________________
Germán Estévez => Web/Blog Guía de estilo, Guía alternativa Utiliza TAG's en tus mensajes. Contactar con el Clubdelphi ![]() P.D: Más tiempo dedicado a la pregunta=Mejores respuestas. |
#3
|
||||
|
||||
Ya lo conseguí. Me explico, la idea es que una tarea de fuerza bruta la partí en 4 trozos para dividir el proceso, entonces si uno de los hilos tiene éxito avisar al resto para que terminen la búsqueda. Como eran 4 do while lo que hice fue crear una variable bool y usarla como condición de salida para los 4 bucles con lo que cuando uno de los cuatro tiene éxito la pone a true y terminan todos los hilos y los 4 hilos son creados desde otro hilo el cual se queda esperando con WaitForMultipleObjects. El ProgressBar fue un mal planteamiento la verdad.
|
![]() |
|
|
![]() |
||||
Tema | Autor | Foro | Respuestas | Último mensaje |
Fallo al intentar varios hilos simultaneos | jpgonzalez | Varios | 4 | 04-08-2015 14:46:52 |
Eventos simultáneos | gesgg | C++ Builder | 6 | 28-01-2012 09:34:59 |
MessageBox y PlaySnd simultáneos | ixMike | API de Windows | 6 | 25-07-2007 19:12:07 |
Apache e IIS simultaneos ? | HombreSigma | Varios | 1 | 27-03-2005 16:29:13 |
usuarios simultaneos de interbase | rrr | Firebird e Interbase | 1 | 10-08-2003 10:10:12 |
![]() |
|