FiveTech Support Forums

FiveWin / Harbour / xBase community
Board index FiveWin para Harbour/xHarbour Multihilo y captura de valor de funci贸n
Posts: 1446
Joined: Mon Oct 10, 2005 02:38 PM
Multihilo y captura de valor de funci贸n
Posted: Fri Dec 30, 2011 06:53 PM

Hola a todos,

驴C贸mo se har铆a para que en el hilo principal de la aplicacci贸n se pudiera usar el valor devuelto por una funci贸n lanzada desde un nuevo hilo?
驴Me he explicado?

Esto es posible?

---------------------------
FUNCTION loshilitos( parametro1, otroparametro )
*hilo principal
Local celretorno := ""

creo nuevo hilo
celretorno : mifuncion( parametro1 )
cierro nuevo hilo

If celretorno = "lerele"
miotrafuncion( otroparametro )
EndIf

...mas c贸digo ...

Return Nil
--------------------------*-

Si no es posible, como deber铆a hacerlo?

Gracias.

Un Saludo

Carlos G.



FiveWin 25.12 + Harbour 3.2.0dev (r2502110321), BCC 7.7 Windows 11 Home

Posts: 44162
Joined: Thu Oct 06, 2005 05:47 PM
Re: Multihilo y captura de valor de funci贸n
Posted: Fri Dec 30, 2011 08:39 PM
Carlos,

Creo que este ejemplo te puede servir:

Est谩 en Harbour/tests/mt/mttest01.prg

Code (fw): Select all Collapse
#ifdef __XHARBOUR__
   #xtranslate hb_threadStart( <x,...> ) => StartThread( <x> )
   #xtranslate hb_threadJoin( <x,...> ) => JoinThread( <x> )
#endif

static s_var
proc main()
   local xResult
   ? Version()
   ? "join:", hb_threadJoin( hb_threadStart( @thFunc() ), @xResult )
   ? "result:", xResult
   ? "static var type:", valtype( s_var )
   ? eval( s_var )
   ? eval( s_var )
return

func thFunc()
   local i := 12345.678
   s_var := { || i++ }
return repl( "Hello World!!! ", 3 )
regards, saludos

Antonio Linares
www.fivetechsoft.com
Posts: 1446
Joined: Mon Oct 10, 2005 02:38 PM
Re: Multihilo y captura de valor de funci贸n
Posted: Fri Dec 30, 2011 10:29 PM
Antonio Linares wrote:Carlos,

Creo que este ejemplo te puede servir:

Est谩 en Harbour/tests/mt/mttest01.prg

Code (fw): Select all Collapse
#ifdef __XHARBOUR__
聽 聽#xtranslate hb_threadStart( <x,...> ) => StartThread( <x> )
聽 聽#xtranslate hb_threadJoin( <x,...> ) => JoinThread( <x> )
#endif

static s_var
proc main()
聽 聽local xResult
聽 聽? Version()
聽 聽? "join:", hb_threadJoin( hb_threadStart( @thFunc() ), @xResult )
聽 聽? "result:", xResult
聽 聽? "static var type:", valtype( s_var )
聽 聽? eval( s_var )
聽 聽? eval( s_var )
return

func thFunc()
聽 聽local i := 12345.678
聽 聽s_var := { || i++ }
return repl( "Hello World!!! ", 3 )


Gracias Antonio,

Es un punto de partida, voy a buscar informacion sobre las funciones del multihilo y empezar茅 a jugar.

Feliz 2012.

Un Saludo

Carlos G.



FiveWin 25.12 + Harbour 3.2.0dev (r2502110321), BCC 7.7 Windows 11 Home

Continue the discussion