FiveTech Support Forums

FiveWin / Harbour / xBase community
Board index FiveWin para Harbour/xHarbour StartThread NO es estable usando FiveWin
Posts: 400
Joined: Tue Oct 16, 2007 05:51 PM
Re: StartThread NO es estable usando FiveWin
Posted: Mon Oct 08, 2018 04:47 PM
cristobal,

tu ejemplo tambien da error.

En esta imagen no le habia puesto la ruta del archivo gif y daba un gpf.
https://i.postimg.cc/8CQ9YZ3K/Screenshot_1.png
" rel="noopener">
https://i.postimg.cc/8CQ9YZ3K/Screenshot_1.png


En esta imagen ya tiene la ruta del archivo gif pero se queda congelada la aplicacion
https://i.postimg.cc/rwDHhBp2/Screenshot_2.png
" rel="noopener">
https://i.postimg.cc/rwDHhBp2/Screenshot_2.png
Saludos,
Regards,

Albeiro Valencia
www.avcsistemas.com
Posts: 6755
Joined: Wed Feb 15, 2012 08:25 PM
Re: StartThread NO es estable usando FiveWin
Posted: Mon Oct 08, 2018 05:28 PM
Pues no, te lo aseguro, no da error, mira a ver donde tienes el problema
Puedes ejecutarlo las veces que quieras ( se saldrá del panel claro )
Doy por hecho que estás utilizando las librerias adecuadas tanto de harbour como de Borland para el uso de multithread

Cristobal Navarro

Hay dos tipos de personas: las que te hacen perder el tiempo y las que te hacen perder la noción del tiempo

El secreto de la felicidad no está en hacer lo que te gusta, sino en que te guste lo que haces
Posts: 400
Joined: Tue Oct 16, 2007 05:51 PM
Re: StartThread NO es estable usando FiveWin
Posted: Mon Oct 08, 2018 07:45 PM

cristobal,

si estoy usando hbvmmt.lib de harbour y cw32mt.lib de borland, si puedes te doy acceso
a mi equipo para que veamos el error que da

Saludos,
Regards,

Albeiro Valencia
www.avcsistemas.com
Posts: 400
Joined: Tue Oct 16, 2007 05:51 PM
Re: StartThread NO es estable usando FiveWin
Posted: Mon Oct 08, 2018 08:35 PM

ahora que reinicie el equipo volvi a compilar el ejemplo y no da error,
pero algo extraño es que despues que lo cierro y abro varias veces salta el gpf.

Saludos,
Regards,

Albeiro Valencia
www.avcsistemas.com
Posts: 6755
Joined: Wed Feb 15, 2012 08:25 PM
Re: StartThread NO es estable usando FiveWin
Posted: Mon Oct 08, 2018 08:43 PM

Si te refieres al ejemplo que he puesto, lo probé más de 20 veces, incluso interrumpiendo su ejecución mientras ejecutaba un thread, y ningún problema
Qué equipo utilizas?
No hay problema, ponte en contacto en mi mail

Cristobal Navarro

Hay dos tipos de personas: las que te hacen perder el tiempo y las que te hacen perder la noción del tiempo

El secreto de la felicidad no está en hacer lo que te gusta, sino en que te guste lo que haces
Posts: 1515
Joined: Thu Oct 30, 2008 02:37 PM
Re: StartThread NO es estable usando FiveWin
Posted: Mon Oct 08, 2018 09:02 PM

Sólo por documentar lo que dije. Me refería a este post http://www.fivetechsupport.com/forums/v ... 072#p78459

Posts: 6755
Joined: Wed Feb 15, 2012 08:25 PM
Re: StartThread NO es estable usando FiveWin
Posted: Mon Oct 08, 2018 10:06 PM
hmpaquito wrote:Sólo por documentar lo que dije. Me refería a este post http://www.fivetechsupport.com/forums/v ... 072#p78459


Como he mencionado, yo no lo he podido probar en muchos escenarios, pero creo que desde la fecha de ese post algo se habrá avanzado, por lo menos Harbour
Qué versión usas tú?
Cristobal Navarro

Hay dos tipos de personas: las que te hacen perder el tiempo y las que te hacen perder la noción del tiempo

El secreto de la felicidad no está en hacer lo que te gusta, sino en que te guste lo que haces
Posts: 400
Joined: Tue Oct 16, 2007 05:51 PM
Re: StartThread NO es estable usando FiveWin
Posted: Mon Oct 08, 2018 10:29 PM
cristobal,

hize unos cambios a tu codigo, agregue un mutex y ahora corre bien, ya no presenta el error.
lo pongo a continuacion.
Code (fw): Select all Collapse
//----------------------------------------------------------------------------//
// Programa: TESTMT01.PRG
// Autor...: Cristobal Navarro
//----------------------------------------------------------------------------//

#include "Fivewin.ch"
#include "hbthread.ch"
#include "gif.ch"

Static oPnel1
Static pMutex  // Adicion

Function Main()

   local oWnd
   local oBar
   local oBtt1
   local oBtt2
   local uTh1
   local uTh2
   local uTh3
   local nPress  := 0

    DEFINE DIALOG oWnd FROM 0, 0 TO 660, 1100 TITLE "Test" PIXEL //MDI

      DEFINE BUTTONBAR oBar SIZE 48, 48 OF oWnd 2015
      DEFINE BUTTON oBtt1 PROMPT "Salir" OF oBar ACTION oWnd:End() TOOLTIP "Salir" 
      DEFINE BUTTON oBtt2 PROMPT "Test"  OF oBar ;
         ACTION ( nPress++, ;
                  pMutex := hb_mutexCreate(),; // Adicion
                  uTh1 := hb_threadStart( HB_THREAD_INHERIT_PUBLIC, @WTest(), "Hello", 120, nPress ),;
                  uTh2 := hb_threadStart( HB_THREAD_INHERIT_PUBLIC, @WTest(), 333, 120, nPress ),;
                  MsgWait( "Process", "Modal", 5  )) 
   
   ACTIVATE DIALOG oWnd ;
      ON INIT ( HazPnel( oWnd ), CrearGif( oWnd ) ) ;
      VALID ( hb_threadTerminateAll(), .T. )
//                  uTh3 := hb_threadStart( HB_THREAD_INHERIT_PUBLIC, @CrearGif(), oWnd ),;
Return NIL 

//----------------------------------------------------------------------------//

Function WTest( u, nF, nPress )

   local x := 1
   if Valtype( u ) = "N"
      For x = 1 to 300 step 15
         hb_mutexLock( pMutex )      // Adicion
         @ nF + x, 60 + ( ( nPress - 1 ) * 110 ) SAY "Thread " + StrZero( nPress + 1, 2 ) ;
            OF oPnel1 PIXEL COLOR CLR_BLACK 
         hb_mutexUnLock( pMutex )    // Adicion
         SysRefresh()
         hb_idleSleep( 0.8 )
      Next x
   else
      For x = 1 to 300 step 15
         hb_mutexLock( pMutex )   // Adicion
         @ nF + x, 4 + ( ( nPress - 1 ) * 110 ) SAY "Thread " + StrZero( nPress, 2 ) ;
            OF oPnel1 PIXEL COLOR CLR_RED
         hb_mutexUnLock( pMutex )   // Adicion
         SysRefresh()
         hb_idleSleep( 0.8 )
      Next x
   endif

Return nil

//----------------------------------------------------------------------------//

Function HazPnel( oWnd )

   @ 50, 400 PANEL oPnel1 OF oWnd SIZE 600, 550
   oPnel1:SetColor( CLR_BLACK, CLR_YELLOW )
   
Return oPnel1

//----------------------------------------------------------------------------//

Function CrearGif( oDlg )
   
   local oGif
   @ 60, 10 GIF oGif FILE "d:\fwh\gifs\matrix.gif" OF oDlg SIZE 100, 100 //ADJUST //

Return nil


Gracias por el ejemplo, lo voy a implementar en mi proyecto y te comento
como me fue.
Saludos,
Regards,

Albeiro Valencia
www.avcsistemas.com
Posts: 6755
Joined: Wed Feb 15, 2012 08:25 PM
Re: StartThread NO es estable usando FiveWin
Posted: Mon Oct 08, 2018 10:31 PM

Bien, muy bien, esa puede ser la "guinda" del pastel en algunos casos, pero como te digo en mi equipo no presenta ningún problema sin mutex, es más, cuando he incluído el mutex es cuando consigo que el programa se quede colgado, por eso no los implementé. Es muy antiguo tu equipo?
Ya nos contarás cuando lo implementes en tu programa

Cristobal Navarro

Hay dos tipos de personas: las que te hacen perder el tiempo y las que te hacen perder la noción del tiempo

El secreto de la felicidad no está en hacer lo que te gusta, sino en que te guste lo que haces
Posts: 400
Joined: Tue Oct 16, 2007 05:51 PM
Re: StartThread NO es estable usando FiveWin
Posted: Mon Oct 08, 2018 10:36 PM

ya hize los cambios en el programa, en mi equipo va bien, mañana lo probare en el equipo del cliente a ver como se comporta.
mi equipo tiene una tarjeta intel, con procesador i5 de 3ra generacion, uso windows 10 64 bits

Saludos,
Regards,

Albeiro Valencia
www.avcsistemas.com

Continue the discussion