NameThreadForDebugging v Delphi 2007

vložil Radek Červinka 9. září 2015 22:27

Většinou používám Delphi z řady XE, ale pro některé projekty stále mám D2007. A některé věci mi vyloženě chybí, např. NameThreadForDebugging, což jsem popisoval s dalšími fíčurkami v článku Několik typů pro ladění v Delphi. A až dneska jsem zjistil, že D2007 něco podobného má, jen ne tak přímočaře.

Pro zopakování - tato funkce pojmenuje vlákno a pak je v seznamu vláken toto jméno dostupné. Sranda je, že pokud si v D2007 necháte vygenerovan TThread přes menu, tak Vám IDE vygeneruje i něco jako


type
  TThreadNameInfo = record
    FType: LongWord;     // must be 0x1000
    FName: PChar;        // pointer to name (in user address space)
    FThreadID: LongWord; // thread ID (-1 indicates caller thread)
    FFlags: LongWord;    // reserved for future use, must be zero
  end;

procedure TMyThread.SetName;
{$IFDEF MSWINDOWS}
var
  ThreadNameInfo: TThreadNameInfo;
{$ENDIF}
begin
{$IFDEF MSWINDOWS}
  ThreadNameInfo.FType := $1000;
  ThreadNameInfo.FName := 'Moje vlakno';
  ThreadNameInfo.FThreadID := $FFFFFFFF;
  ThreadNameInfo.FFlags := 0;

  try
    RaiseException( $406D1388, 0, sizeof(ThreadNameInfo) div sizeof(LongWord), @ThreadNameInfo );
  except
  end;
{$ENDIF}
end;


a na začátku Execute je tato metoda zavolána. Všimněte si té RaiseException, to zas bude nějaká interní hrůza Windows.

No a za běhu to pak vypadá takto:

NameThreadForDebugging

Blbost, ale někdy výrazně pomůže.


Nabízíme Delphi školení na různá témata, primárně ve Vaší firmě.

Tagy: ,

Praxe

Komentování ukončeno

Naše nabídka

Partial English version.

MVP
Ing. Radek Červinka - Embarcadero MVP
profil na linkedin, Twitter:@delphicz

Nabízím placené poradenství a konzultace v oblasti programování a vývoje SW.
Dále nabízíme i vývoj speciálního software na zakázku.

Neváhejte nás kontaktovat (i ohledně reklamy nebo burzy práce).

Pokud chcete podpořit tento server libovolnou částkou, můžete použít PayPal. Moc děkuji.

Delphi Certified Developer

O Delphi.cz

Delphi je jediný moderní RAD nástroj podporující tvorbu nativních aplikací pro platformu Win32, Win64 , Mac OSX a na iPhone a Android (s výhledem na další platformy díky FireMonkey) na současném trhu (včetně Windows 8.1).

V současnosti je světová komunita přes dva miliónů vývojářů.

Delphi.cz je nezávislý portál pro uživatele Delphi. Portál není koncipován pro úplné začátečníky, i když i ti se zde nebudou nudit, ale spíše na programátory, kteří již něco znají a chtějí své znalosti dále rozvíjet a sledovat novinky.

Anketa

Poslední komentáře

Comment RSS