Einzelnen Beitrag anzeigen

Der schöne Günther

Registriert seit: 6. Mär 2013
6.110 Beiträge
 
Delphi 10 Seattle Enterprise
 
#4

AW: Criticalsection Aquire vs Enter

  Alt 23. Jan 2014, 12:16
In XE5 das gleiche. Reines Synonym.

Interessant ist aber das Bestehen einer Helperklasse TCriticalSectionHelper welche wieder von Acquire aufgerufen wird:

Delphi-Quellcode:
procedure TCriticalSection.Acquire;
begin
  FSection.Enter;
end;
FSection ist ein Alias für den Record Winapi.Windows._RTL_CRITICAL_SECTION und die Helperklasse greift mit folgenden Methoden ihm unter die Arme:

Delphi-Quellcode:
  TCriticalSectionHelper = record helper for TRTLCriticalSection
    procedure Initialize; inline;
    procedure Destroy; inline;
    procedure Free; inline;
    procedure Enter; inline;
    procedure Leave; inline;
    function TryEnter: Boolean; inline;
  end;
mit

Delphi-Quellcode:
procedure TCriticalSectionHelper.Enter;
begin
  EnterCriticalSection(Self);
end;
Das geht (zumindest unter Windows) auf die kernel32.dll: procedure EnterCriticalSection; external kernel32 name 'EnterCriticalSection'; Hoffe, das hilft dir beim nächsten Fernsehquiz weiter

The more you know...
  Mit Zitat antworten Zitat