Como utilizar Thread no Xharbour/Xailer ???

Discussão sobre a Xailer

Moderador: Moderadores

Avatar do usuário
mhackervix
Usuário Nível 3
Usuário Nível 3
Mensagens: 105
Registrado em: 11 Fev 2008 02:06
Localização: ES

Como utilizar Thread no Xharbour/Xailer ???

Mensagem por mhackervix »

Abaixo segue código de exemplo do uso de Thread no Xbase++ (retirado do Help do mesmo). Gostaria de saber como utilzar Threads no Xharbour...

Código: Selecionar todos

PROCEDURE Main
LOCAL oThread := Thread():new() // create thread object

CLS
oThread:start( "Sum", 10000 ) // sum numbers from 1
// to 10000
DO WHILE .T. // display characters during
?? "." // the calculation
Sleep(10)
IF ! oThread:active // Check if thread still runs
EXIT
ENDIF

ENDDO

? "The sum is:", oThread:result
RETURN

FUNCTION Sum( nNumber )
LOCAL i, nSum := 0

FOR i:=1 TO nNumber
nSum += i
IF i % 100 == 0 // progress display
DispOutAt( MaxRow(), 0, i )
ENDIF
NEXT

RETURN nSum
Editado pela última vez por Pablo César em 18 Mar 2013 18:21, em um total de 2 vezes.
Razão: Mensagem editada para colocar a tag [ code ]<br>Veja como utilizar esta tag: http://www.pctoledo.com.br/forum/faq.php?mode=bbcode#f2r1
Mhackervix, Msc.
Avatar do usuário
mhackervix
Usuário Nível 3
Usuário Nível 3
Mensagens: 105
Registrado em: 11 Fev 2008 02:06
Localização: ES

Achei a Resposta...

Mensagem por mhackervix »

Tinha procurado nos Helps do Xailer (utilizo o Xharbour através do Xailer) e não tinha encontrado. Procurei diretamente na documentação do Xharbour e encontrei a função StartThread() que resolve a questão.
Mhackervix, Msc.
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 »

Não sei se já conhece, mas no guia de referência da linguagem (download aqui) pode-se encontrar uma boa descrição dessas funções. No índice da categoria há mais de 20 funções relacionadas à threads e semáforos (MUTEX). Inclusive com vários exemplos.
[]'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!
Avatar do usuário
mhackervix
Usuário Nível 3
Usuário Nível 3
Mensagens: 105
Registrado em: 11 Fev 2008 02:06
Localização: ES

Re:

Mensagem por mhackervix »

Maligno escreveu:Não sei se já conhece, mas no guia de referência da linguagem (download aqui) pode-se encontrar uma boa descrição dessas funções. No índice da categoria há mais de 20 funções relacionadas à threads e semáforos (MUTEX). Inclusive com vários exemplos.
Maligno,
Obrigado. Foi justamente nesta fonte que encontrei o StartThread, porem, como dito acima, utilizo o xHarbour através do Xailer, ao compilar com a função StartThread() o Xailer da erro de função xHarbour inexistente e ao acrescentar o #include "thread.h" o erro aparece ao processar o include (não encontra a definição de __GNUC__ , interna ao thread.h).


Se alguem puder me auxiliar quanto ao Xailer, estou prescisando de ajuda.

Obrigado,
Mhackervix, Msc.
Avatar do usuário
mhackervix
Usuário Nível 3
Usuário Nível 3
Mensagens: 105
Registrado em: 11 Fev 2008 02:06
Localização: ES

Re: Como utilizar Thread no Xharbour/Xailer ???

Mensagem por mhackervix »

Verifiquei que o Xailer não tem a LIB xhbmt.lib (a qual esta o StartThread() ), baixei o xharbour e xHarbour Builder (free) e não encontrei esta Lib neles também.

Quem possuir esta Lib, favoz disponilizada. Acredito que com esta lib os Threads funcionarão no Xailer.

Por curiosidade: Parte do xHarbour é proprietaria e somente uma parte é livre ???

att.
Mhackervix, Msc.
Avatar do usuário
sygecom
Administrador
Administrador
Mensagens: 7131
Registrado em: 21 Jul 2006 10:12
Localização: Alvorada-RS
Contato:

Re: Como utilizar Thread no Xharbour/Xailer ???

Mensagem por sygecom »

mhackervix escreveu:Verifiquei que o Xailer não tem a LIB xhbmt.lib (a qual esta o StartThread() ), baixei o xharbour e xHarbour Builder (free) e não encontrei esta Lib neles também.

Quem possuir esta Lib, favoz disponilizada. Acredito que com esta lib os Threads funcionarão no Xailer.
Qual versão do xHarbour você esta usando e de onde baixou ? e o xailer é compativel com Multi Thread ?
Por curiosidade: Parte do xHarbour é proprietaria e somente uma parte é livre ???
Até onde sei é o xharbour.org é livre, porem existe uma versão comercial do xHarbour onde tem acesso SQL e outras coisas mais, e essa sim é Paga.
Leonardo Machado
xHarbour.org + Hwgui + PostgreSql
Avatar do usuário
mhackervix
Usuário Nível 3
Usuário Nível 3
Mensagens: 105
Registrado em: 11 Fev 2008 02:06
Localização: ES

Re: Como utilizar Thread no Xharbour/Xailer ???

Mensagem por mhackervix »

sygecom escreveu: Qual versão do xHarbour você esta usando e de onde baixou ?
Baixei a ultima versão disponivel no site xharbour.org (1.0.0) que, aparentemente, é a mesma disponibilizada pelo Xailer.
e o xailer é compativel com Multi Thread ?
O Xailer é apenas uma IDE para o xHarbour.
Até onde sei é o xharbour.org é livre, porem existe uma versão comercial do xHarbour onde tem acesso SQL e outras coisas mais, e essa sim é Paga.
Não consegui encontrar a LIB xhbmt.lib na versão free. Ela consta no guia do xharbour (PDF) e no descritivo da versão paga (xharbour builder pro e enterprise).
Mhackervix, Msc.
Avatar do usuário
sygecom
Administrador
Administrador
Mensagens: 7131
Registrado em: 21 Jul 2006 10:12
Localização: Alvorada-RS
Contato:

Re: Como utilizar Thread no Xharbour/Xailer ???

Mensagem por sygecom »

olá mhackervix,
As referencias de LIB do Help em PDF do xHarbour são para a versão comercial, já tinha notado isso, porem todas as funções que tem no Help do xHarbour comercial, funcionam no xharbour free.

Não sei como se faz para compilar no xMate, mas se estiver usando o hbmake, é só marcar a opção de Mult Thread que ele linka todas as LIB necessárias.
Leonardo Machado
xHarbour.org + Hwgui + PostgreSql
Avatar do usuário
mhackervix
Usuário Nível 3
Usuário Nível 3
Mensagens: 105
Registrado em: 11 Fev 2008 02:06
Localização: ES

Re: Como utilizar Thread no Xharbour/Xailer ???

Mensagem por mhackervix »

sygecom escreveu: Não sei como se faz para compilar no xMate, mas se estiver usando o hbmake, é só marcar a opção de Mult Thread que ele linka todas as LIB necessárias.
O Xailer chama o compilador internamente. Tem uma opção na configuração do projeto que podemos passar um parametro para o linker (acredito que é o linker do BCC que ele utiliza), mas não sei qual parametro passar. :'(

att.
Mhackervix, Msc.
Responder