Lanzar 2 procesos simultáneamente

Estoy haciendo un ejemplo en el que intento lanzar dos procesos desde PowerBuilder, pero me es imposible.
Imaginemos que tenemos 2 botones en una ventana, el primer botón ejecuta un código al pulsarlo que tarda mucho ( por ejemplo 10 minutos), si mientras se está ejecutando el código del primer botón quiero pulsar el segundo botón me el powerbuilder no me deja porque el procesador está totalmente ocupado.
¿Cómo podría resolver esto? ¿Es posible hacerlo?

1 Respuesta

Respuesta
1
Tienes que utilizar multihilos...
1)Crear un customObject llamada 'uo_threadManager'
2)En tu ventana crear una variable de instancia tipo uo_threadMan
uo_threadMan iuoMan
3)en tu ventana crear variables de instancia de tipo uo_thread
uo_thread iuo_thread1, iuo_thread2
3)Crear un customObject llamado 'uo_thread'
4)Crear una variable de instancia en objeto 'uo_thread'
uo_threadManager iuoMan
5)Crear una función en objeto 'uo_thread' que se llame 'uf_setParent' con un parámetro ' puoMan'tipo 'uo_threadManager'
6)Codigo en 'uf_setParent'
iuoMan=puoMan
7)Crear en objeto 'uo_thread' una función por cada calculo que tu quieres hacer en background
7)En tu ventana donde tienes tus botones en el evento open crear tus objetos así (por cada hilo):
//registro del objeto shared (hilo)
if SharedObjectRegister('uo_thread','hilo1') = Success! then
if SharedObjectGet('hilo1',iuo_thread1) = success! then
iuo_thread1.uf_SetParent(iuoMan)
end if
end if
if SharedObjectRegister('uo_thread','hilo1') = Success! then
if SharedObjectGet('hilo1',iuo_thread2) = success! then
iuo_thread2.uf_SetParent(iuoMan)
end if
end if
//en tus boton1
iuo_thread1.post funcionCalculo1(parms)
//en tus boton2
iuo_thread1.post funcionCalculo1(parms)
//en tu close
SharedObjectUnRegister('hilo1')
SharedObjectUnRegister('hilo2')
//puedes buscar ejemplos en internet de multithread

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas