Komponent w klasie TThread

0

Mam klasę:

type
  TThreadTEST = class(TThread)
  private
    IP: string;
    SNMP: TIdSNMP;
  public
    constructor Create(AddressIP: string);
    destructor Destroy; override;
  protected
    procedure Execute; override;
  end;

Następnie:


destructor TThreadTEST.Destroy;
begin
  SNMP.Free;
  inherited;
end;

constructor TThreadTEST.Create(AddressIP: string);
begin
  inherited Create(False);
  IP := AddressIP;
  SNMP := TIdSNMP.Create(nil);
end;

procedure TThreadTEST.Execute;
begin
  FreeOnTerminate := true;
  SNMP.Host := IP;
  //...
end;

Czy powyższy sposób tworzenia komponentu w wątku TIdSNMP.Create(nil);
oraz jego usunięcia za pomocą SNMP.Free; jest poprawny ?

Dla TIdSNMP nie wyskakują żadne błędy, ale dla innych komponentów np. z paczki IP WORKS, wyskakuje błąd i dlatego nie wiem czy jest to moja wina czy właśnie tamtych kontrolek.

0

Obiekty niewizualne powinny działać w wątkach prawidłowo. IMHO kod powyższy jest poprawny, sam zresztą tak robiłem i nic złego się nie działo.

1 użytkowników online, w tym zalogowanych: 0, gości: 1