threads no harbour

Outras bibliotecas visuais e IDEs para Harbour/xHarbour (xHGTK/HbWxW/GtWvT/GtWvW/WvWtools.etc)

Moderador: Moderadores

hrodrigom
Usuário Nível 2
Usuário Nível 2
Mensagens: 63
Registrado em: 10 Nov 2007 08:04
Localização: Santa Rita - Paraguay

threads no harbour

Mensagem por hrodrigom »

Boa tade caros colegas

Como eu uso threads com o harbour?

Grato
____________________
Rodrigo Machado
FlaRo Sistemas
http://www.flaro.net
rodrmigu
Usuário Nível 3
Usuário Nível 3
Mensagens: 150
Registrado em: 27 Nov 2007 15:13
Localização: Indaiatuba SP

Re: threads no harbour

Mensagem por rodrmigu »

Olá,

No Harbour não tem, por enquanto. No xHarbour dê uma olhada em /xharbour/tests/mt*.prg

[]'s
Rodrigo
hrodrigom
Usuário Nível 2
Usuário Nível 2
Mensagens: 63
Registrado em: 10 Nov 2007 08:04
Localização: Santa Rita - Paraguay

Re: threads no harbour

Mensagem por hrodrigom »

E como eu poderia deixar rodando uma função em segundo plano no harbour?
Esta função chamaria outra em algum momento.

com xharbour eu já estou conseguindo, mas gostaria de usar a xhgtk para fazer alguns testes, mas não estou conseguindo usar o xharbor+xhgtk no windows.

Já consigo gerar a libxhgtk com xharbour, mas não consigo compilar minha aplicação.
____________________
Rodrigo Machado
FlaRo Sistemas
http://www.flaro.net
rodrmigu
Usuário Nível 3
Usuário Nível 3
Mensagens: 150
Registrado em: 27 Nov 2007 15:13
Localização: Indaiatuba SP

Re: threads no harbour

Mensagem por rodrmigu »

Olá Rodrigo,

No Harbou não tem como. Mas enfim, qual o problema que vc está enfrentando? Pois o xharbour que vem com o instalador da xhgtk está funcionando. Aliás vou pedir pra mover esta thread pra lista da xhgtk.

[]'s
Rodrigo
hrodrigom
Usuário Nível 2
Usuário Nível 2
Mensagens: 63
Registrado em: 10 Nov 2007 08:04
Localização: Santa Rita - Paraguay

Re: threads no harbour

Mensagem por hrodrigom »

Testei o xHarbour que vem no instalador, funciona.
Mas não tem nenhuma biblioteca *mt
Baixei o xharbour para mingw em http://www.xharbour.org, re-compilei a lib xhgtk. E ai não funciona mais nada,

Veja o final do erro.

Código: Selecionar todos

ference to `hb_mouse_Col'

C:\xHgtk\xharbour\lib/librtl.a(mouseapi.o):mouseapi.c:(.text+0x65): undefined re

ference to `hb_mouse_Row'

C:\xHgtk\xharbour\lib/librtl.a(mouseapi.o):mouseapi.c:(.text+0x75): undefined re

ference to `hb_mouse_SetPos'

C:\xHgtk\xharbour\lib/librtl.a(mouseapi.o):mouseapi.c:(.text+0x85): undefined re

ference to `hb_mouse_IsButtonPressed'

C:\xHgtk\xharbour\lib/librtl.a(mouseapi.o):mouseapi.c:(.text+0x95): undefined re

ference to `hb_mouse_CountButton'

C:\xHgtk\xharbour\lib/librtl.a(mouseapi.o):mouseapi.c:(.text+0xa5): undefined re

ference to `hb_mouse_SetBounds'

C:\xHgtk\xharbour\lib/librtl.a(mouseapi.o):mouseapi.c:(.text+0xb5): undefined re

ference to `hb_mouse_GetBounds'

C:\xHgtk\xharbour\lib/librtl.a(gt.o):gt.c:(.text+0x56): undefined reference to `

hb_gt_Version'

C:\xHgtk\xharbour\lib/librtl.a(maxrow.o):maxrow.c:(.text+0x50): undefined refere

nce to `hb_gt_info'

C:\xHgtk\xharbour\lib/librtl.a(maxrow.o):maxrow.c:(.text+0x7a): undefined refere

nce to `hb_gt_info'

C:\xHgtk\xharbour\lib/librtl.a(maxrow.o):maxrow.c:(.text+0xd0): undefined refere

nce to `hb_gt_info'

C:\xHgtk\xharbour\lib/librtl.a(maxrow.o):maxrow.c:(.text+0xfa): undefined refere

nce to `hb_gt_info'

collect2: ld returned 1 exit status

C:\xHgtk\samples\functions>build trayicon
____________________
Rodrigo Machado
FlaRo Sistemas
http://www.flaro.net
rodrmigu
Usuário Nível 3
Usuário Nível 3
Mensagens: 150
Registrado em: 27 Nov 2007 15:13
Localização: Indaiatuba SP

Re: threads no harbour

Mensagem por rodrmigu »

Rodrigo,

Vou tentar compilar o xharbour que está no instalador, mas com a opção MT. Qualquer novidade eu posto aqui.

UPDATE:

O problema acima deve ser a falta da GTNUL, que antes era necessário link. Atualmente, tnato xharbour ou harbour nao precisa. Mas acho que a versão que esta lá é muito antiga.

[]'s
Rodrigo
Editado pela última vez por rodrmigu em 05 Ago 2008 15:39, em um total de 1 vez.
rodrmigu
Usuário Nível 3
Usuário Nível 3
Mensagens: 150
Registrado em: 27 Nov 2007 15:13
Localização: Indaiatuba SP

Re: threads no harbour

Mensagem por rodrmigu »

Rodrigo,

Eu não consegui compilar o xharbour do cvs para o MinGw com suporte a MT. Aliás, deram centenas de warnings na compilação entre outros vários warnings, etc, enfim, esta é uma das coisas que me irritam no xharbour, uma hora funciona e depois numa nova versão já para de funcionar :P

Entretanto, consegui compilar a ultima versao do xharbour com o MSVC 7.1 e consegui linkar tb com suporte MT e testar junto com xhgtk. Ou seja, talvez a sua saída se desejar usar MT, seja usar o MSVC.

Se vc não tiver o MSVC 7.1 command line gratuíto me avise. Se quiser eu posso lhe mandar o xharbour do cvs já compilado tb.

Este foi o programa que testei:

Código: Selecionar todos

#include "hbclass.ch"
#include "xhgtk.ch"

PROCEDURE Main()
    Local oWindow
    Local oButton1
    Local oButton2

        INIT WINDOW oWindow ;
             AT 0,0         ;
             TITLE "Button Command Test"  ;
             SIZE 640, 480  ;
             CENTER         ;
             RESIZEABLE     
            
            @ 435, 460 BUTTON oButton1 ;
                       CAPTION "_Ok"    ;
                       SIZE  80, 30 ;
                       ACTION Test() ;
                       HINT "Ok Hint" ;
                       IMAGE "gtk-ok" ;                       
                       OF oWindow
                       
            @ 400, 550 BUTTON oButton2 ;
                       CAPTION "_Close" ;
                       SIZE  80, 80 ;
                       ACTION oWindow:close() ;
                       HINT "Close Hint" ;
                       IMAGE "gtk-close" POSITION GTK_POS_TOP;
                       OF oWindow
                                
        ACTIVATE WINDOW oWindow
RETURN

PROCEDURE Test()

  LOCAL nStart := Seconds()
  LOCAL oMyObject := MyClass()
  LOCAL MethodPtr := HB_ObjMsgPtr( oMyObject, "Count" )
  LOCAL xThread

  CLEAR SCREEN

  nStart := Seconds()

  // 1st param is the Startup Function, 2nd. is Self if 1st param is a Method or NIL otherwise,
  // rest are paramaters to be passed to the Function/Method.
  StartThread ( @MyThreadFunc(), 2, "1st Thread:",     0,  5000 )
  StartThread ( @MyThreadFunc(), 4, "2nd Thread:",  5000, 10000 )
  StartThread ( @MyThreadFunc(), 6, "3rd Thread:", 10000, 15000 )

  WaitForThreads()
  @ 8, 0 SAY "Threads Time:" + Str( Seconds() - nStart )

  nStart := Seconds()

  // StartThread() for methods can be called using an already available
  // Method Pointer or using a method name
  StartThread ( oMyObject, "Count", 10, "1st Thread:",     0,  5000 )
  StartThread ( oMyObject, "Count", 12, "2nd Thread:",  5000, 10000 )
  StartThread ( oMyObject, MethodPtr, 14, "3rd Thread:", 10000, 15000 )

  WaitForThreads()
  @ 16, 0 SAY "[METHODS] Threads Time:" + Str( Seconds() - nStart )

  nStart := Seconds()

  MyThreadFunc( 18, "1st Run:",     0,  5000 )
  MyThreadFunc( 20, "2nd Run:",  5000, 10000 )
  MyThreadFunc( 22, "3rd Run:", 10000, 15000 )

  @ 24, 0 SAY  "Sequential Time:" + Str( Seconds() - nStart )

  Inkey(0)
RETURN

PROCEDURE MyThreadFunc( nRow, cName, nStart, nMax )

  LOCAL i

  FOR i := nStart TO nMax
     //@ nRow, 10 SAY cName + Str( i )
     // Atomic operation
     DispOutAt(nRow, 10, cName + Str( i ))
  NEXT

RETURN

CLASS MyClass
    METHOD Count( nRow, cName, nStart, nMax )
ENDCLASS

METHOD Count( nRow, cName, nStart, nMax ) CLASS MyClass
  LOCAL i

  FOR i := nStart TO nMax
     //@ nRow, 10 SAY cName + Str( i )
     // Atomic operation
     DispOutAt(nRow, 10, cName + Str( i ))
  NEXT

RETURN NIL
[]'s
Rodrigo
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: threads no harbour

Mensagem por mhackervix »

A alguns Meses atraz andei testando com o Xailer (xHarbour) e não obtive sucesso, inclusive postei duvidas aqui no forum. Consegui colocar minha aplicação com thread para rodar utilizando Xbase++.

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: threads no harbour

Mensagem por sygecom »

Olá Mhackervix,
Seria possivel você colocar um passo a passo para ajudar inciantes que querem testar a xbase++ , estou querendo testar, mas nem sei de onde baixar, e como dar os primeiros passos ou até mesmo se posso aproveitar algo dos meus sistema que esta usando lib de terceiros como a VL, se for possivel, abra um topico em:
viewforum.php?f=28

Desde já Agradeço.....
Leonardo Machado
xHarbour.org + Hwgui + PostgreSql
Avatar do usuário
software_facil
Usuário Nível 3
Usuário Nível 3
Mensagens: 211
Registrado em: 23 Fev 2005 12:19
Localização: Curitiba/PR
Contato:

Re: threads no harbour

Mensagem por software_facil »

Não sei se alguém lembra, mas ai vai o link : http://www.recital.com/index.htm?/produ ... &mainFrame
Se alguém for comprar, e quiser me dar uma cópia de presente, estou aceitando, não sou orgulhoso !

Abraços
messenger : software_facil@hotmail.com
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: threads no harbour

Mensagem por mhackervix »

sygecom escreveu:Olá Mhackervix,
Seria possivel você colocar um passo a passo para ajudar inciantes que querem testar a xbase++ , estou querendo testar, mas nem sei de onde baixar, e como dar os primeiros passos ou até mesmo se posso aproveitar algo dos meus sistema que esta usando lib de terceiros como a VL, se for possivel, abra um topico em:
viewforum.php?f=28

Desde já Agradeço.....
Abra o tópico e me avise que colocarei um passo a passo inicial.

att.
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: threads no harbour

Mensagem por mhackervix »

O Demo e documentações do xBase++ podem ser obtidas no site da Alaska ( http://www.alaska-software.com ).

att.
Mhackervix, Msc.
Responder