Problemas con Syswait.

Post Reply
User avatar
Andrés González
Posts: 625
Joined: Thu Jan 19, 2006 10:45 am
Location: Mallorca

Problemas con Syswait.

Post by Andrés González »

Hola compañeros de foro,
Hace años que transporté mis antiguos programas hechos con clipper a fivewin, y en aquellos browses que clipper paraba su flujo con inkey() yo lo sustituí por Syswait. Han funcionado siempre bien y nunca se han parado por algun error de programa. Ahora me he dado cuenta que cuando dejas el brwose mucho tiempo abierto hace un consumo exagerado de memoria y cuando abandonas el programa, sale sin problemas pero el proceso se queda en el administrador de tareas activo hasta que o bien sales de tu sesion o ahora que lo sé matas el proceso, Nadie se había quejado, pero ahora que lo sé tengo que buscar una solución. Si el programa lo dejas el tiempo que sea solo con el menú no da problemas esto solo ocurre cuando muestro el browse en pantalla, con lo que me imagino que es por el syswait.

Hay alguna manera de evitar que el syswait haga este consumo de memoria, me refiero a ver si se puede hacer una limpieza de memoria cada poco o similar (Garbage collector), no sé si el error se produce por la aglomeración de basura en la memoria o por otro motivo, pero si estoy poco tiempo no pasa nada, o sea si trabajo con el browse menos de media hora, el programa sale y no se queda en el administrador de tareas, pero si estoy mas tiempo al salir del programa lo hace sin que el usuario note nada pero se quedael proceso abierto en el administrador de tareas. Si este programa lo utilizas varias veces, te genera varios procesos que te consumen la memoria y todo se vuelve mas lento.

Alguien encuentra alguna solucion o le ha ocurrido algo similar?

Code: Select all

    ACTIVATE WINDOW oWndEdit MAXIMIZED ;
                          ON INIT ( setScope(x_orden), DbGoto(&x_rec) ) ;
                            ON RESIZE oSpl:AdjRight();
                      VALID ( lExit:= .T., .T. )

   
   DO WHILE !lExit 
      SysRefresh()
      SysWait(.1)
   ENDDO
Un saludo.
Saludos

Andrés González desde Mallorca
User avatar
karinha
Posts: 4882
Joined: Tue Dec 20, 2005 7:36 pm
Location: São Paulo - Brasil

Re: Problemas con Syswait.

Post by karinha »

En el button de salida del programa:

Code: Select all

FUNCTION CLOSE_WINDOW()


   // DELETEFILE( "WINORCAM.LOG" )

   /*
   DeleteObject( oFont )
   DeleteObject( oBrush )
   */

   DbCommitAll()
   DbUnLockAll()
   DbCloseAll()

   FreeResources()
   Release All

   SysRefresh()

   HB_GCALL( .T. )

   CLEAR MEMORY

   /*
   IF FILE( "checkres.txt" )
      FErase( "checkres.txt" )
   ENDIF

   CheckRes()
   */

   PostQuitMessage( 0 )

   QUIT

RETURN NIL
 
João Santos - São Paulo - Brasil
Post Reply