Vlakno jako funkce

Autor Téma: Vlakno jako funkce  (Přečteno 353 krát)

Libor.Karko

  • Host
Vlakno jako funkce
« kdy: 10-06-2018, 11:20:43 »
Dobrý den.Můj první pokus v lazaru.
Toto funkční v delphi.
Kód: [Vybrat]
Function OtevriThread(Param: Pointer): Longint;
begin
  beep;
end;


procedure TForm1.Button1Click(Sender: TObject);
var
 thh: THandle;
 thid: Cardinal;
begin
 thh:=BeginThread(nil,0,@OtevriThread,nil,0,thid);
 if (thh<>0) then CloseHandle(thh);
end;

Přes lazarus se mu nelibí CloseHandle"
unit1.pas(42,19) Error: Identifier not found "CloseHandle"

I když se mi to podaří rozjet pod win, půjde to i pod linuxem?

Offline Ondřej Pokorný

  • Guru
  • *****
  • Příspěvků: 772
  • Karma: 55
    • Verze Delphi: Primárně Lazarus, jinak D7 až aktuální
    • Kluug.net
Re:Vlakno jako funkce
« Odpověď #1 kdy: 10-06-2018, 13:26:37 »
Klikni si na BeginThread pomocí Ctrl+levá myš a uvidíš, co všechno máš pro thready k dispozici v FPC. Mimo jiné i CloseThread, ten pod Windows volá právě CloseHandle.
Embarcadero Technology Partner, juj. Člen Lazarus týmu, oj.

Libor.Karko

  • Host
Re:Vlakno jako funkce
« Odpověď #2 kdy: 10-06-2018, 15:35:46 »
Zkoušel jsem a je tam  ;)
Proč mi to pak vyhazuje chybu?

Offline Delfin

  • Guru
  • *****
  • Příspěvků: 1060
  • Karma: 52
  • SW konzultant
    • Verze Delphi: 2009, Tokyo
Re:Vlakno jako funkce
« Odpověď #3 kdy: 10-06-2018, 16:03:56 »
Zkoušel jsem a je tam  ;)
Proč mi to pak vyhazuje chybu?

Nevim kde je co (ani jakou verzi FPC pouzivas), ale modul threadh.inc aktualne neobsahuje funkci CloseHandle (tady je neoficialni mirror).
« Poslední změna: 10-06-2018, 16:09:01 od Delfin »
I'm a soldier, so don't panic! I know the underground! I like WTFPL license! No more Google, go duck, go!

Libor.Karko

  • Host
Re:Vlakno jako funkce
« Odpověď #4 kdy: 10-06-2018, 16:21:14 »
I tam je   function CloseThread (threadHandle : TThreadID) : dword;

Offline Delfin

  • Guru
  • *****
  • Příspěvků: 1060
  • Karma: 52
  • SW konzultant
    • Verze Delphi: 2009, Tokyo
Re:Vlakno jako funkce
« Odpověď #5 kdy: 10-06-2018, 16:23:33 »
I tam je   function CloseThread (threadHandle : TThreadID) : dword;

Ano, jen ve Tvem kodu v prvnim prispevku je CloseHandle, ne CloseThread.
I'm a soldier, so don't panic! I know the underground! I like WTFPL license! No more Google, go duck, go!

Libor.Karko

  • Host
Re:Vlakno jako funkce
« Odpověď #6 kdy: 10-06-2018, 16:50:20 »
Tak stačilo zaměnít na CloseThread  ;)
Jsem to ale plantala  ;D

Libor.Karko

  • Host
Re:Vlakno jako funkce
« Odpověď #7 kdy: 10-06-2018, 17:00:39 »
Ve win je to ok, ale v linuxu to místo ukončení vlákna ukončí celou aplikací  >:(

 

S rychlou odpovědí můžete používat BB kódy a emotikony jako v běžném okně pro odpověď, ale daleko rychleji.

Jméno: E-mail:
Ověření:
Křestní jméno zpěváka Gotta: