AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Programmieren allgemein TInterlocked außerhalb eines TThreads?
Thema durchsuchen
Ansicht
Themen-Optionen

TInterlocked außerhalb eines TThreads?

Ein Thema von SneakyBagels · begonnen am 2. Jul 2017 · letzter Beitrag vom 2. Jul 2017
 
SneakyBagels
(Gast)

n/a Beiträge
 
#11

AW: TInterlocked außerhalb eines TThreads?

  Alt 2. Jul 2017, 19:01
Zitat:
Dann würde ich ebenfalls eine Klasse daraus machen (geht aber auch als Record) und Setter benutzen (inline deklarieren wegen der Performance), die sich dann um die Locks kümmern.
Ist mir ehrlich gesagt zuviel Aufwand mit Klassen und dann den Settern.

Aktuell ist es schlicht so:
es existiert ein Record und auf die einzelnen Werte greife ich zu une modifiziere sie mit TInterLocked.
Und damit ich nur an einer Stelle im Code die Variable selber habe ist es so gelößt


Delphi-Quellcode:

// unit _globals.pas
type
 TTestRecord = packed record
  test, hallo, huhu: Int64;
 end;
var aTestRecord: TTestRecord;

// Unit _enums.pas
type
 TTestEnum = (test, hallo, huhu);

// unit log_utils.pas
procedure test(const aTestEnum: TTestEnum; iIncrement: Integer = 1);
begin
 case aTestEnum do
  TTestEnum.test:
   TInterLocked.Add(aTestRecord.test, iIncrement);

  TTestEnum.hallo:
   TInterLocked.Add(aTestRecord.hallo, iIncrement);

  TTestEnum.huhu:
   TInterLocked.Add(aTestRecord.huhu, iIncrement);
 end;
end;

// unit... überall da wo ich es brauche
test(TTestEnum.hallo, 5);
test(TTestEnum.huhu);
Wenn es auf einfache Art und Weise besser geht (wovon ich ausgehe) dann nehme ich diese Kritik gerne an!

Geändert von SneakyBagels ( 2. Jul 2017 um 19:59 Uhr)
  Mit Zitat antworten Zitat
 


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 23:16 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz