E2189 Les variables locales thread ne peuvent être locales à une fonction (Delphi)

De RAD Studio
Aller à : navigation, rechercher

Remonter à Messages d'erreur et d'avertissement (Delphi)

Les variables locales thread doivent être déclarées en portée globale.


program Produce;

  procedure NoTLS;
    threadvar
      x: Integer;
  begin
  end;

begin
end.

Une variable thread ne peut pas être déclarée locale à une procédure.


program Solve;

  threadvar
    x: Integer;

  procedure YesTLS;
    var
      localX : Integer;
  begin
  end;

begin
end.

Il existe deux alternatives simples pour éviter cette erreur. D'abord, la section threadvar peut être déplacée vers une portée locale. Deuxièmement, la threadvar de la procédure peut être changée en section var normale. Notez que si les informations du compilateur sont activées, une information sur localX déclarée mais non utilisée sera émise.