Mult-Thread em xhb.

Projeto [x]Harbour - Compilador de código aberto compatível com o Clipper.

Moderador: Moderadores

marcos.gurupi
Usuário Nível 4
Usuário Nível 4
Mensagens: 939
Registrado em: 06 Jul 2004 11:53
Localização: Gurupi-TO

Mult-Thread em xhb.

Mensagem 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.
Avatar do usuário
sygecom
Administrador
Administrador
Mensagens: 7131
Registrado em: 21 Jul 2006 10:12
Localização: Alvorada-RS
Contato:

Mensagem por sygecom »

Marcos, qual o ERRO ? esta usando o HBMAKE ?
Leonardo Machado
xHarbour.org + Hwgui + PostgreSql
marcos.gurupi
Usuário Nível 4
Usuário Nível 4
Mensagens: 939
Registrado em: 06 Jul 2004 11:53
Localização: Gurupi-TO

Mensagem 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
Avatar do usuário
Maligno
Membro Master
Membro Master
Mensagens: 6398
Registrado em: 06 Jul 2004 01:40
Localização: Londrina/PR

Mensagem 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.
[]'s
Maligno
---
Não respondo questões técnicas através de MP ou eMail. Não insista.
As dúvidas devem ser postadas no fórum. Desta forma, todos poderão
se beneficiar das respostas.

---
Se um dia precisar de uma transfusão de sangue você perceberá como
é importante a figura do doador. Procure o hemocentro de sua cidade e
se informe sobre a doação de sangue, plaquetas e medula óssea. Doe!
marcos.gurupi
Usuário Nível 4
Usuário Nível 4
Mensagens: 939
Registrado em: 06 Jul 2004 11:53
Localização: Gurupi-TO

Mensagem 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
Avatar do usuário
sygecom
Administrador
Administrador
Mensagens: 7131
Registrado em: 21 Jul 2006 10:12
Localização: Alvorada-RS
Contato:

Mensagem 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.
Leonardo Machado
xHarbour.org + Hwgui + PostgreSql
Avatar do usuário
Maligno
Membro Master
Membro Master
Mensagens: 6398
Registrado em: 06 Jul 2004 01:40
Localização: Londrina/PR

Mensagem 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.
[]'s
Maligno
---
Não respondo questões técnicas através de MP ou eMail. Não insista.
As dúvidas devem ser postadas no fórum. Desta forma, todos poderão
se beneficiar das respostas.

---
Se um dia precisar de uma transfusão de sangue você perceberá como
é importante a figura do doador. Procure o hemocentro de sua cidade e
se informe sobre a doação de sangue, plaquetas e medula óssea. Doe!
Responder