Cha*_*iga 5 delphi delphi-2010
如何在Delphi 2010中的delphi Thread中访问"NameThreadForDebugging"?
type
TMyThread = class(TThread)
protected
procedure Execute; override;
procedure UpdateCaption;
end;
implementation
procedure TMyThread.UpdateCaption;
begin
Form1.Caption := 'Name Thread For Debugging';
// how I get 'TestThread1' displayed in the caption
end;
procedure TMyThread.Execute;
begin
NameThreadForDebugging('TestThread1');
Synchronize(UpdateCaption);
Sleep(5000);
end;
Run Code Online (Sandbox Code Playgroud)
Rob*_*edy 13
NameThreadForDebugging
顾名思义,该函数仅用于调试.如果要为其他目的跟踪名称,请在线程对象中保留一个字段并将名称存储在那里.使用该字段命名线程并按需填充表单的标题.
没有用于检索线程名称的API,因为线程在API级别没有名称.NameThreadForDebugging
引发一个特殊的异常,IDE将其识别为"命名此线程"异常.它看到异常(因为它是一个调试器),在它自己的内部调试数据结构中记下线程的名称,然后允许应用程序继续运行.应用程序捕获并忽略该异常.
但是,数据传输是单向的.应用程序可以通过异常向调试器发送信息,但调试器无法发回数据.操作系统对一切都没有注意到.对于操作系统,它就像任何其他异常一样.