Página 1 de 1
Thread no HARBOUR e não xHarbour
Enviado: 11 Out 2010 01:07
por fladimir
Pessoal no xHarbour utilizava assim:
Código: Selecionar todos
nIdBkEmail01:= StartThread( "Envia_Email", , "Analise Sistema ", , , , , cArquivo,,.F.,.F.)
e blz sem problema....
agora no Harbour não funciona, e não é a Função Envia e-mail, pois a mesma executada fora da Thread roda legal.
estou usando o #include "hbcompat.ch" e tb a lib hbxpp mas não deu, tentei trocar por HB_ThreadStar() tb não deu...
Como os colegas q usam o Harbour estão fazendo com funções em BackGround ou Threads
Sds...
Re: Thread no HARBOUR e não xHarbour
Enviado: 11 Out 2010 12:54
por Itamar M. Lins Jr.
Ola!
Pergunta basica...
Está compilado com MT ?
Saudações,
Itamar M. Lins Jr.
Re: Thread no HARBOUR e não xHarbour
Enviado: 11 Out 2010 13:02
por Itamar M. Lins Jr.
Continuando...
Código: Selecionar todos
/*
* $Id: mttest02.prg 14676 2010-06-03 16:23:36Z vszakats $
*/
/*
* Harbour Project source code:
* demonstration/test code for using QUIT commands and ALWAYS statements
* execution. Child thread uses QUIT before main one.
*
* Copyright 2008 Przemyslaw Czerpak <druzus / at / priv.onet.pl>
* www - http://harbour-project.org
*
*/
#ifdef __XHARBOUR__
#xtranslate hb_threadStart( <x,...> ) => StartThread( <x> )
#xtranslate hb_threadJoin( <x,...> ) => JoinThread( <x> )
#command begin sequence => try
#command always => finally
#endif
proc main()
local thID, i
? Version()
? "Main start"
thID := hb_threadStart( @thFunc(), "A", "B", "C" )
? "Thread ID:", thID
? "==================="
?
begin sequence
for i := 1 to 10
?? "M"
hb_idleSleep(0.050)
next
? "==================="
? "Main QUIT"
quit
always
? "Main ALWAYS section"
?
endsequence
? "End of main"
return
proc thFunc( ... )
local i
? "Thread begin"
? "Parameters:"
aeval( hb_aParams(), {|x|qqout("",x)})
?
begin sequence
for i:=1 to 10
?? "t"
hb_idleSleep(0.030)
if i == 5
? "Thread QUIT"
quit
endif
next
always
? "Thread ALWAYS section"
?
endsequence
? "Thread end"
?
return
exit proc p
? "I'm EXIT procedure"
Os exemplos estão na pasta \tests\mt
compilar esse, usando: hbmk2 mttest02.prg -mt
Resultado:
C:\harbour\trunk\harbour\tests\mt>mttest02
Harbour 2.1.0beta2 (Rev. 15561)
Main start
Thread ID: 0x00A8A20C
===================
Thread begin
Parameters: AM B C
ttMttMt
Thread QUIT
Thread ALWAYS section
MMMMMMM
===================
Main QUIT
Main ALWAYS section
I'm EXIT procedure
C:\harbour\trunk\harbour\tests\mt>
Saudações,
Itamar M. Lins Jr.
Re: Thread no HARBOUR e não xHarbour
Enviado: 11 Out 2010 14:07
por fladimir
Olá Itamar, sim estou compilando com MT utilizando -mt no hbmk2, entao eu vi os exemplos e testei, mas no meu codigo acima demonstrado não vai, e se faço a função Envia_Email() por fora da Thread funciona normal.
no Inicio do Código estou colocando "hbcompat.ch" q faz o translate do exemplo q vc postou e uso tb a lib xhb
Sera q pode ser isto?
Sds.
Thread no HARBOUR e não xHarbour
Enviado: 12 Nov 2018 17:34
por JCBarbosa
Olá Pessoal.... preciso de uma ajuda....
Já vi vários post ai, mas não consigo ver como começar e qual função utilizar.....
- Preciso que um função que rode e fique verificando a cada 30 segundos e me avise quando chega arquivo em uma determinada pasta.
- Tenho um aplicativo que vai baixar os pedidos em XML em uma pasta e queria que quando chegar possa me avisar com msg ou Beep a cada 10, 20 segundos
ex Pasta C:\Arquivos arquivos = .XML (HARBOUR)
alguém poderia me ajudar ??
grato e no aguardo