AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Suchfunktion Ergebnis der Suchanfrage

Ergebnis der Suchanfrage


Datum des Suchindex: Heute, 09:02

Parameter dieser Suchanfrage:

Suche in Thema: Arbeiten mit TThreadlist
Suche alle Beiträge, die von "Zacherl" geschrieben wurden
• Suchmethode: "Suche nach allen Begriffen"
• Nach Datum (firstpost) sortiert
• Zeige Treffer als Beiträge
Zeige 4 von insges. 4 Treffern
Suche benötigte 0.003s

Es liegen Ergebnisse in folgenden Bereichen vor:

  • Forum: Object-Pascal / Delphi-Language

    AW: Arbeiten mit TThreadlist

     
      by Zacherl, 20. Jan 2017
    Hier mal noch die Alternative mit einer Queue (erscheint mir mit Boardmitteln und ohne großen Aufwand die eleganteste Lösung zu sein):
    type
    TDataStruct = record
    public
    Timestamp: Cardinal;
    Value: Integer;
    end;
    var
    Queue: TQueue<TDataStruct>;
    begin
  • Forum: Object-Pascal / Delphi-Language

    AW: Arbeiten mit TThreadlist

     
      by Zacherl, 20. Jan 2017
    Dein Ansatz wird vermutlich tatsächlich noch performanter sein. Dann würde ich aber direkt eine TQueue<> nehmen und den Zugriff manuell mit einem TMonitor btw. einer TCriticalSection absichern. Tatsächlich bevorzuge ich nach wie vor den RingBuffer Ansatz, da dort die Memory Operationen eingespart werden können und man mit lediglich zwei Pointern/Indizes sehr einfach das FIFI Prinzip umsetzen...
  • Forum: Object-Pascal / Delphi-Language

    AW: Arbeiten mit TThreadlist

     
      by Zacherl, 19. Jan 2017
    Die eigentliche TThreadList ist keine Liste, sondern verwaltet nur intern eine Solche. Konkret macht LockList folgendes:
    function TThreadList.LockList: TList;
    begin
    TMonitor.Enter(FLock);
    Result := FList;
    end;
    und UnlockList dies:
    procedure TThreadList.UnlockList;
    begin
    TMonitor.Exit(FLock);
  • Forum: Object-Pascal / Delphi-Language

    AW: Arbeiten mit TThreadlist

     
      by Zacherl, 19. Jan 2017
    Such mal nach dem Stichword "Consumer-Producer Problem". Wenn dein Consumer (Speichern in Datenbank) nicht hinterherkommt, hast du im Prinzip nur die Möglichkeit die Frequenz des Producers (Datenerfassung) entsprechend zu verringern. Am besten dynamisch. Alternativ - falls die Datenerfassung nur kurze Zeit läuft - könntest du erstmal alle Werte erfassen und danach erst in die Datenbank schreiben...


URL zu dieser Suchanfrage:

https://www.delphipraxis.net/dp_search.php?do=usersearch&search_username=Zacherl&search_exact_username=1&search_sortby=dateline&search_resulttype=post&search_matchmode=0&searchthreadid=191472
Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 09:18 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