Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   suche einTutorial für die Verwendung der CriticalSection (https://www.delphipraxis.net/203704-suche-eintutorial-fuer-die-verwendung-der-criticalsection.html)

akuk 15. Mär 2020 07:51


suche einTutorial für die Verwendung der CriticalSection
 
Hallo
es hat hunderte von Tutorials, aber ein konkretes Beispiel habe ich nicht gefunden. Immer ist die Rede von 2 Threads.
Habe ein einziges Thread (empfang der Daten über RS232) und ein Hauptprogram der die Daten aus dem Thread verarbeitet.
Suche ein Tutorial mit Beispielen zu diesem Thema

Luckie 15. Mär 2020 08:59

AW: suche einTutorial für die Verwendung der CriticalSection
 
Probiere es mal mit meinen: http://michael-puff.de/Programmierung/Delphi/Tutorials/

Rollo62 15. Mär 2020 11:00

AW: suche einTutorial für die Verwendung der CriticalSection
 
Das ist auch sehr sehenswert
https://www.danielwolf.eu/blog/2017/...ynchronisation

jaenicke 15. Mär 2020 11:02

AW: suche einTutorial für die Verwendung der CriticalSection
 
Wobei die Critical Sections relativ langsam sind. Bei kurzen Blockaden ist TMonitor die bessere Alternative, weil dort erst mit Spins versucht wird auf den Eintritt in die geschützte Ressource zu warten.

Beispiel:
Delphi-Quellcode:
TMonitor.Enter(FList);
try
  FList.Add(NewData);
finally
  TMonitor.Exit(FList);
end;
Aber auch wenn ich das eben gepostete Video nicht gesehen habe, da kommen die verschiedenen Methoden ja auch zur Sprache.

DieDolly 15. Mär 2020 11:17

AW: suche einTutorial für die Verwendung der CriticalSection
 
TMonitor funktioniert aber nur mit Objekten.

Sowas hier in einem Getter in einer Klasse ist mit einer CS besser
Delphi-Quellcode:
 CS.Enter;
 try
  Result := FBool;
 finally
  CS.Leave;
 end;

jaenicke 15. Mär 2020 14:55

AW: suche einTutorial für die Verwendung der CriticalSection
 
Zitat:

Zitat von DieDolly (Beitrag 1459783)
TMonitor funktioniert aber nur mit Objekten.

Sowas hier in einem Getter in einer Klasse ist mit einer CS besser

Es sei denn es kommt auf die Performance an. Und wenn du innerhalb einer Klasse bist, hast du ja eh schon ein Objekt...
Delphi-Quellcode:
  TMonitor.Enter(Self);
  try
    Result := FBool;
  finally
    TMonitor.Exit(Self);
  end;

DieDolly 15. Mär 2020 14:59

AW: suche einTutorial für die Verwendung der CriticalSection
 
Zitat:

TMonitor.Enter(Self);
Daran hab ich nicht gedacht. FBool gehört natürlich zur Klasse :wall:


Alle Zeitangaben in WEZ +1. Es ist jetzt 17:57 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz