Desidero visualizzare un nome descrittivo nella finestra dell'elenco di thread mentre è in uso l'IDE Delphi 6. Ho trovato il codice qui sotto sul web per farlo in Delphi 6 poiché so che la versione non ha SetThreadName() implementato in modo nativo. Lo chiamo dal metodo Execute() del mio thread. So che viene chiamato perché l'IDE si apre quando viene sollevata l'eccezione. Tuttavia, quando guardo nella lista dei thread (Ctrl + Alt + T), non vedo il nome che ho impostato. Ho appena visto le solite Id Thread, State, Status e Location, nient'altro.È questo il modo corretto per impostare il nome di un thread in Delphi 6?
Cosa devo fare in modo diverso per visualizzare i nomi dei thread? Inoltre, qualcuno ha un'idea su come fermare l'IDE dalla pausa sulla linea RaiseException? Ho un sacco di discussioni nel programma ed è fastidioso avere l'IDE spuntando N volte ogni volta che eseguo il programma.
So che posso disabilitare l'IDE dall'arresto delle eccezioni Delphi, ma lo desidero normalmente e preferirei non doverlo attivare e disattivare ogni volta che viene creato un nuovo set di thread.
Named threads in Delphi - what is that for?
procedure SetThreadName_delphi(const Name: string);
type
TThreadNameInfo =
record
RecType: LongWord;
Name: PChar;
ThreadID: LongWord;
Flags: LongWord;
end;
var
info:TThreadNameInfo;
begin
// This code is extremely strange, but it's the documented way of doing it!
info.RecType := $1000;
info.Name := PChar(Name);
info.ThreadID := $FFFFFFFF;
info.Flags := 0;
try
RaiseException($406D1388, 0,
SizeOf(info) div SizeOf(LongWord), PDWord(@info));
except
end;
end;
Credo che il nome del thread sia visibile solo in Delphi 2010 e versioni successive. – Nat
No, la denominazione dei thread è stata supportata da D6. –
Scratch che - Delphi 7. –