Page 2 of 2
Re: StartThread NO es estable usando FiveWin
Posted:
Mon Oct 08, 2018 4:47 pm
by albeiroval
cristobal,
tu ejemplo tambien da error.
En esta imagen no le habia puesto la ruta del archivo gif y daba un gpf.
[url]
https://i.postimg.cc/8CQ9YZ3K/Screenshot_1.png[/url]
En esta imagen ya tiene la ruta del archivo gif pero se queda congelada la aplicacion
[url]
https://i.postimg.cc/rwDHhBp2/Screenshot_2.png[/url]
Re: StartThread NO es estable usando FiveWin
Posted:
Mon Oct 08, 2018 5:28 pm
by cnavarro
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
Re: StartThread NO es estable usando FiveWin
Posted:
Mon Oct 08, 2018 7:45 pm
by albeiroval
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
Re: StartThread NO es estable usando FiveWin
Posted:
Mon Oct 08, 2018 8:35 pm
by albeiroval
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.
Re: StartThread NO es estable usando FiveWin
Posted:
Mon Oct 08, 2018 8:43 pm
by cnavarro
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
Re: StartThread NO es estable usando FiveWin
Posted:
Mon Oct 08, 2018 9:02 pm
by hmpaquito
Sólo por documentar lo que dije. Me refería a este post
http://www.fivetechsupport.com/forums/v ... 072#p78459
Re: StartThread NO es estable usando FiveWin
Posted:
Mon Oct 08, 2018 10:06 pm
by cnavarro
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ú?
Re: StartThread NO es estable usando FiveWin
Posted:
Mon Oct 08, 2018 10:29 pm
by albeiroval
cristobal,
hize unos cambios a tu codigo, agregue un mutex y ahora corre bien, ya no presenta el error.
lo pongo a continuacion.
- Code: Select all Expand view
//----------------------------------------------------------------------------//
// 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.
Re: StartThread NO es estable usando FiveWin
Posted:
Mon Oct 08, 2018 10:31 pm
by cnavarro
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
Re: StartThread NO es estable usando FiveWin
Posted:
Mon Oct 08, 2018 10:36 pm
by albeiroval
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