Power Builder - Sobre Yield()

 
Vista:

Sobre Yield()

Publicado por Edwin (17 intervenciones) el 13/05/2008 19:05:44
Buenas dias,
Tengo una aplicación powerbuilder, que llama a un proceso. para esperar a que este proceso me de resultados tengo la siquiente expresión

DO
YIELD()
LOOP UNTIL i_peso <> 0

esta espera me esta generando que el uso de la CPU este entre un 50 y 70% siempre, existe otra forma de esperar el resultado ? u otra función que eprmita hacer lo mismo que el yield pero sin sobrecargar ?

GRacias
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:Sobre Yield()

Publicado por javieron (26 intervenciones) el 14/05/2008 11:55:26
El proceso es una subrutina en powerbuilder ? un proceso externo ? o exactamente que es lo que estas llamando para esperar el resultado ?

Un saludo ¡
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Sobre Yield()

Publicado por Edwin (17 intervenciones) el 14/05/2008 15:05:30
llamo a una ventana de la misma aplicación que realiza una lectura de una báscula (toma el peso de una carga) , esta ventana no se cierra hasta que realice la toma de datos; y la espera de la otra ventana con el yield() en el loop hace que se mantenga el uso de la CPU en esos rangos

gracias por la ayuda
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Duda...

Publicado por Leopoldo Taylhardat (710 intervenciones) el 14/05/2008 16:33:42
Saludos...

Asumo que el proceso de recibir datos es por el puerto serial o el proceso de pesaje transmite a un archivo texto????

Porque si es a través del puerto serial puedes hacer un loop de lectura del puerto serial hasta que tenga datos sin necesidad de hacer ese Yield...
Si es a través de un archivo texto que la ventana abre, lee y cierra hasta que haya datos no necesitas ese proceso, creo que lo puedes hacer con una ventana response...

asumo que Yield es recomendable para procesos externos al PB por ejemplo procesos del SO, backup, etc...
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Duda...

Publicado por javieron (26 intervenciones) el 15/05/2008 07:37:01
Exacto , lo que debes hacer es una ventana de tipo response que no se cierre hasta no haber terminado el proceso . La Ventana desde la cual la llamaste no continuara su ejecucion hasta que esta no se habra cerrado y si necesitas devolver algun parametro lo puedes hacer con closewithreturn y recibir este valor con Message.stringparm .

Esperemos que te sirva de ayuda . Un saludo desde Valencia-España ¡
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Duda...

Publicado por Edwin (17 intervenciones) el 15/05/2008 15:27:53
muchas gracias por la ayuda; voy a realizar el cambio si es muy buena la solución

saludos Medellín - Colombia
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Duda...

Publicado por javieron (26 intervenciones) el 15/05/2008 17:06:01
De nada . Ya nos comentas que tal .

saludos Valencia - España XD
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Duda...

Publicado por Edwin (17 intervenciones) el 15/05/2008 17:34:33
si me funciono, la ventana se queda esperando, un error que estaba cometiendo era que la llamaba como opensheetwithparm pero lo cambie a openwithparm y funciona muy bien

Gracias
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Duda...

Publicado por javieron (26 intervenciones) el 16/05/2008 09:39:30
:) Pues perfecto un problema menos XD


Saludos desde VALENCIA-ESPAÑA
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar