相关疑难解决方法(0)

Delphi中的命名线程 - 这是为了什么?

使用BDS中的工具选项板创建TThread后代时,可以为该线程提供名称.这是自动生成的代码.您只需在Execute方法中调用SetName()函数,并且调用此方法的线程以一种奇怪的方式给出一个名称...

{$IFDEF MSWINDOWS}
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;
{$ENDIF}

{ TTestThread }

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

  try
    RaiseException( $406D1388, 0, sizeof(ThreadNameInfo) div sizeof(LongWord), @ThreadNameInfo );
  except …
Run Code Online (Sandbox Code Playgroud)

delphi multithreading

6
推荐指数
2
解决办法
2735
查看次数

标签 统计

delphi ×1

multithreading ×1