Página 1 de 1

Mult-Thread em xhb.

Enviado: 15 Abr 2008 10:33
por marcos.gurupi
Caros, estive fazendo o teste com o exemplo do syecom para usar MT, no exemplo abaixo o sistema iria fazer o download automaticamente, o usuario seria avisado quando existir atualizacao. Segue abaixo o exemplo:

***********************
Function Baixa_Automatico
***********************
if Inetestaconectada()=.T. // verefica a conexão com a internet
StartThread( @Donwload_Auto(),"1.0") // tem que compilar em MT, para rodar na surdina
Else
MsgInfo("Nao existe conexao com a internet.")
endif
Return
***********************

O projeto estah linkado as seguintes libs:

cw32mt.lib (BCC55)
ctmt.lib (xhb 9970)
tipmt.lib (xhb 9970)
vmmt.lib (xhb 9970)
hwguimt.lib (hwgui 2.16)

Acontece que o sistema fica em erro quando a funcao StartThread() eh acionada. O q estaria fazendo errado para usar o MT?

Marcos Roberto.

Enviado: 17 Abr 2008 08:43
por sygecom
Marcos, qual o ERRO ? esta usando o HBMAKE ?

Enviado: 17 Abr 2008 08:53
por marcos.gurupi
Olha, estou usando o xdev, tentei no hbmake e funcionou. Sobre o erro, o sistema estah apenas apresentando a famosa "operacao ilegal" (deixa a PF saber disso). Entaum acredito ser problema no script do xdev.

Marcos Roberto

Enviado: 17 Abr 2008 08:56
por Maligno
Detalhe: mutithreading exige cuidado. Se você estiver utilizando (ou compartilhando entre threads) algum recurso do sistema que não seja thread safe poderá observar erros totalmente obscuros, que em boa parte dos casos não tem qualquer relação com a realidade.

Enviado: 17 Abr 2008 09:44
por marcos.gurupi
Caro Maligno, acredito n ser o caso. Vou descrever em que momento estarei usando o MT:

Estou desenvolvendo um sistema em SYSTRAY o mesmo ficara de 1 em 1 hora monitorando alguma atualizacao no servidor FTP em caso de atualizacao o sistema ira fazer o download e somente apos o termino do download o usuario serah avisado, ou seja, em nenhum momento a mesma operacao serah invocada pois c trata de um sistema em tray.

Marcos Roberto

Enviado: 17 Abr 2008 12:27
por sygecom
marcos.gurupi escreveu:Olha, estou usando o xdev, tentei no hbmake e funcionou. Sobre o erro, o sistema estah apenas apresentando a famosa "operacao ilegal" (deixa a PF saber disso). Entaum acredito ser problema no script do xdev.

Marcos Roberto
Bom, não uso o xDev, mas muito gente usa aqui no forum, quem sabe alguem sabe de alguma configuração para rodar MT no xDev, já tentou ver com o Vailton.

Enviado: 17 Abr 2008 14:19
por Maligno
marcos.gurupi escreveu:Caro Maligno, acredito n ser o caso.
Ok. Eu só quis deixar essa informação adicional, para o caso de alguém estar experimentando problemas estranhos com threads.