Uma experiencia positiva com Multi-Thread

Uma experiencia positiva com Multi-Thread

Postby MGA » Sat Nov 13, 2010 11:28 am

pessoal,
quero compartilhar com vocês uma experiência com THREAD que tive:

Tenho um sistema que usa uma função da DLL(micro-terminal gertec) para escrever na porta serial, até ai tudo bem, porem, quando tenho varios terminais e a função que escreve esta em uma thread, acontecia do sistema gerar um erro do windows e fechar.

EX:

...

define timer otimer of ownd interval 300 action(LerTerminal())

******************************************
function LerTerminal()
local x
aTerm:=TerminaisConectados()
for x:=1 to len(aTerm)
if IsValidThread( aTerm[x,16] ) //se o terminal esta imprimindo aguarda
loop
endif
...
if imprimir()
aTerm[x,16]:=StartThread(@Acionaextrato(),nID,aTerm[x,12])
endif
next

***********************************************
function AcionaExtrato(nID,aDadosImp)
local u
for u:=1 to len(adados)
mt_sendbinserial(nID,0,cDados,48) <---Gerava ERRO!!! :cry:
threadsleep(100)
next
threadsleep(100)
return nil



RESOLVIDO ASSIM:


GLOBAL pMutexaCons

...

pMutexaCons := HB_MutexCreate()

...

define timer otimer of ownd interval 300 action(LerTerminal())

******************************************
function LerTerminal()
local x
aTerm:=TerminaisConectados()
for x:=1 to len(aTerm)
if IsValidThread( aTerm[x,16] ) //se o terminal esta imprimindo aguarda
loop
endif
...
if imprimir()
aTerm[x,16]:=StartThread(@Acionaextrato(),nID,aTerm[x,12])
endif
next

***********************************************
function AcionaExtrato(nID,aDadosImp)
local u
for u:=1 to len(adados)
HB_MutexLock(pMutexaCons)
mt_sendbinserial(nID,0,cDados,48) <---AGORA OK :D
HB_MutexUnLock(pMutexaCons)
threadsleep(100)
next
threadsleep(100)
return nil


Espero que isso possa ajudar alguem.

Fiquem com Deus
ubiratanmga@gmail.com

FWH24.04
BCC7.3
HARBOUR3.2
xMate
Pelles´C
TDolphin
MGA
 
Posts: 1252
Joined: Mon Feb 25, 2008 2:54 pm
Location: Brasil/PR/Maringá

Re: Uma experiencia positiva com Multi-Thread

Postby horacio » Mon Nov 15, 2010 7:17 pm

Interesante este aporte. Muchas gracias
horacio
 
Posts: 1363
Joined: Wed Jun 21, 2006 12:39 am
Location: Capital Federal Argentina

Re: Uma experiencia positiva com Multi-Thread

Postby Antonio Linares » Wed Nov 17, 2010 7:46 am

Gracias por el ejemplo :-)
regards, saludos

Antonio Linares
www.fivetechsoft.com
User avatar
Antonio Linares
Site Admin
 
Posts: 42122
Joined: Thu Oct 06, 2005 5:47 pm
Location: Spain

Re: Uma experiencia positiva com Multi-Thread

Postby vilian » Wed Sep 04, 2013 8:46 pm

Sgs,

Estou tentando usar Multithreads, mas não consigo resolver o seguinte problema:

- Enquanto o sistema está "Rodando", tudo vai bem - As chamadas as threads funcionam e o sistema faz exatamente o que era esperado.

- O problema ocorre apenas quando fecho a aplicação - Apararece uma mensagem de que o "sistema não está respondendo..." e logo em segiuda uma "APPCRASH"

Vc passou por isso ?
Sds,
Vilian F. Arraes
vilian@vfatec.com.br
Belém-Pa-Brazil
User avatar
vilian
 
Posts: 978
Joined: Wed Nov 09, 2005 2:17 am
Location: Brazil

Re: Uma experiencia positiva com Multi-Thread

Postby MGA » Wed Sep 04, 2013 9:05 pm

Vilian,

você esta parando/encerrando a Thread antes de fechar a aplicação?
ubiratanmga@gmail.com

FWH24.04
BCC7.3
HARBOUR3.2
xMate
Pelles´C
TDolphin
MGA
 
Posts: 1252
Joined: Mon Feb 25, 2008 2:54 pm
Location: Brasil/PR/Maringá

Re: Uma experiencia positiva com Multi-Thread

Postby vilian » Thu Sep 05, 2013 12:47 am

Sgs,

Sim, mas mesmo que nem execute a Thread, já gera o erro na saída, basta incluir as 2 libs para MT que na saída gera o problema.
Sds,
Vilian F. Arraes
vilian@vfatec.com.br
Belém-Pa-Brazil
User avatar
vilian
 
Posts: 978
Joined: Wed Nov 09, 2005 2:17 am
Location: Brazil

Re: Uma experiencia positiva com Multi-Thread

Postby MGA » Thu Sep 05, 2013 11:36 am

vilian,

lembro que são mais libs, e de cabeça lembro que tem uma do BCC582 também. Confirme no forum quais são elas! Não estou perto dos fontes agora.
ubiratanmga@gmail.com

FWH24.04
BCC7.3
HARBOUR3.2
xMate
Pelles´C
TDolphin
MGA
 
Posts: 1252
Joined: Mon Feb 25, 2008 2:54 pm
Location: Brasil/PR/Maringá

Re: Uma experiencia positiva com Multi-Thread

Postby vilian » Thu Sep 05, 2013 11:51 am

Sgg,

Já procurei em todo o forum e só encontrei orientação para usar a HBVMMT.LIB e CW32MT.LIB. Mas acho que deve ser algo na linkedição mesmo, uma vez que o problema aparece mesmo que a thread não seja executada - Basta incluir essas 2 libs no projeto que ao sair do sistema já aparece o APPCRASH.
Sds,
Vilian F. Arraes
vilian@vfatec.com.br
Belém-Pa-Brazil
User avatar
vilian
 
Posts: 978
Joined: Wed Nov 09, 2005 2:17 am
Location: Brazil


Return to FiveWin para Harbour/xHarbour

Who is online

Users browsing this forum: No registered users and 49 guests