Delphi 6 IDEでスレッドリストウィンドウに表示される素敵なユーザーフレンドリーな名前を使用したいと思います。 Delphi 6でこれを行うためのWeb上のコードは、バージョンには基本的に実装されたSetThreadName()がないことが分かっています。私はスレッドのExecute()メソッドから呼び出す。例外が発生したときにIDEがポップアップするため、呼び出されていることがわかります。しかし、スレッドリスト(Ctrl + Alt + T)を見ると、設定した名前は表示されません。私はちょうど通常のスレッドID、状態、状態、および場所の列、何も表示されません。これはDelphi 6でスレッドの名前を設定する正しい方法ですか?
スレッド名を表示するには、どうすればよいですか?また、誰でもIDEがRaiseException行を一時停止するのを止める方法を知っていますか?プログラムにスレッドがたくさんあるので、プログラムを実行するたびにIDEがN回ポップアップするのは面倒です。
私はDelphiの例外で停止するIDEを無効にすることができます知っているが、私は通常それをしたいと思うし、スレッドの新しいセットが作成されるたびにオフにする必要はありません。
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;
スレッド名はDelphi 2010以上でのみ表示されると思います。 – Nat
いいえ、スレッドネーミングはD6以降サポートされています。 –
その傷 - デルファイ7 –