E2189 Thread-lokale Variablen können nicht lokal zu einer Funktion sein (Delphi)
Nach oben zu Fehler- und Warnungsmeldungen (Delphi)
Thread-lokale Variablen müssen mit globalem Gültigkeitsbereich deklariert werden.
program Produce; procedure NoTLS; threadvar x: Integer; begin end; begin end.
Eine Thread-Variable kann nicht als lokal zu einer Prozedur deklariert werden.
program Solve; threadvar x: Integer; procedure YesTLS; var localX : Integer; begin end; begin end.
Zur Vermeidung dieses Fehlers gibt es zwei einfache Möglichkeiten. Zum einen kann der Abschnitt threadvar auf lokalen Gültigkeitsbereich gebracht werden. Zum anderen kann der Abschnitt threadvar in der Prozedur in einen normalen var-Abschnitt geändert werden. Beachten Sie, dass für den Fall, dass die Compiler-Hinweise aktiviert sind, ein Hinweis darüber gegeben wird, dass localX zwar deklariert, aber niemals verwendet wird.