Einzelnen Beitrag anzeigen

Benutzerbild von Sir Rufo
Sir Rufo

Registriert seit: 5. Jan 2005
Ort: Stadthagen
9.454 Beiträge
 
Delphi 10 Seattle Enterprise
 
#16

AW: TInterlocked.Exchange bei Zugriff eines nur lesenden Threads?

  Alt 17. Mär 2015, 14:05
Verdammt, dann habe ich wohl etwas Arbeit vor mir
Häh, wieso das denn? Pack die Felder in eine Klasse, gibt der Klasse ein Synchro-Mechanismus an die Hand und dann geht es ab.
Delphi-Quellcode:
TFoo = class
private
  FCS : TCriticalSection;
  FValue : string;
  function GetValue : string;
  procedure SetValue(const Value : string) : string;
public
  constructor Create;
  destructor Destroy; override;

  property Value : string read GetValue write SetValue;
end;

constructor TFoo.Create;
begin
  inherited;
  FCS := TCriticalSection.Create;
end;

destructor TFoo.Destroy;
begin
  FreeAndNil( FCS );
  inherited;
end;

function GetValue : string;
begin
  FCS.Enter;
  try
    Result := FValue;
  finally
    FCS.Leave;
  end;
end;

procedure SetValue(const Value : string) : string;
begin
  FCS.Enter;
  try
    FValue := Value;
  finally
    FCS.Leave;
  end;
end;
Kaum macht man's richtig - schon funktioniert's
Zertifikat: Sir Rufo (Fingerprint: ‎ea 0a 4c 14 0d b6 3a a4 c1 c5 b9 dc 90 9d f0 e9 de 13 da 60)
  Mit Zitat antworten Zitat