Problemas con Syswait.

Problemas con Syswait.

Postby Andrés González » Sat Nov 23, 2019 11:37 pm

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  Expand view

    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
Andrés González
 
Posts: 627
Joined: Thu Jan 19, 2006 10:45 am
Location: Mallorca

Re: Problemas con Syswait.

Postby karinha » Mon Nov 25, 2019 5:57 pm

En el button de salida del programa:

Code: Select all  Expand view

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 - Phone: +55(11)95150-7341
User avatar
karinha
 
Posts: 7215
Joined: Tue Dec 20, 2005 7:36 pm
Location: São Paulo - Brasil


Return to FiveWin para Harbour/xHarbour

Who is online

Users browsing this forum: Google [Bot] and 73 guests