E2189 スレッドローカル変数は関数内では宣言できません (Delphi)

提供: RAD Studio
移動先: 案内検索

エラーと警告のメッセージ(Delphi) への移動

スレッドローカル変数はグローバルスコープで宣言しなければなりません。


program Produce;

  procedure NoTLS;
    threadvar
      x : Integer;
  begin
  end;

begin
end.

{ スレッド変数は手続きに対してローカルには宣言できない }


program Solve;

  threadvar
    x : Integer;

  procedure YesTLS;
    var
      localX : Integer;
  begin
  end;

begin
end.

{ このエラーには簡単な回避方法が 2 つある。1 つは threadvar セクションをグローバルスコープへ移動する方法である。もう 1 つは,手続き内の threadvar を通常の var セクションに変更する方法である。コンパイラのヒントがオンの場合には,宣言しても使用されない localX についてのヒントが表示される }