AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Object-Pascal / Delphi-Language Delphi Via property auf Array zugreifen (Threadsicher?)
Thema durchsuchen
Ansicht
Themen-Optionen

Via property auf Array zugreifen (Threadsicher?)

Ein Thema von TheMiller · begonnen am 25. Feb 2008 · letzter Beitrag vom 25. Feb 2008
Antwort Antwort
Benutzerbild von sirius
sirius

Registriert seit: 3. Jan 2007
Ort: Dresden
3.443 Beiträge
 
Delphi 7 Enterprise
 
#1

Re: Via property auf Array zugreifen (Threadsicher?)

  Alt 25. Feb 2008, 09:51
Zum Index:
Anscheinend brauchst du den nicht, da du beim Schreiben immer nur hinten anhängen willst. Dann lass doch den Index im Property und in der set-Methode weg.
Den Index bräcuhtest du, wenn du irgendein Element des Arrays ändern willst. Aber du willst ja nur anhängen.
btw.: Warum benutzt du keine Stringliste. Wäre OOP-konformer, die Array-Lösung wie du sie derzeit umgesetzt hat, wird mit zunehmender Zahl an Elementen langsamer.

Zum Container:
Das hatten wir ja im anderen Thread soweit. Du hast aber getExpDataCount Threadsafe mit begin- und endread ausgeführt?
Und wie gesagt: Du hast TContainer jetzt von TSimpleRWSync abgeleitet. Du kannst ohne Probleme auch von TMultiReadExclusiveWriteSynchronizer (kurz: TMREWSync) ableiten. Dahinter steckt eine andere Art des Synchronisierens (je nach Anwendung ist das eine oder das andere schneller). Die öffentlichen Methoden sind netterweise dieselben. Dadurch muss man sonst nix ändern.


zum Callback:
Hier hast du jetzt eine zweite Variante des Synchronisierens hineingebracht. wenn du bei der schönen ContainerMethode bleiben willst, dann schreibe doch s auch in den Container und starte dort das Callback:
Delphi-Quellcode:
type
  TContainer=class(TSimpleRWSync) //oder eben: TContainer=class(TMREWSync)
  private
    FExpData: TExpData; //Besser: TStringList
    Fs:string; //blöder kurzer Name ;-)
    
    function getExpData(i: Integer): String;
    procedure setExpData(i:Integer; const Value: String);
    function getExpDataCount: Integer;

    procedure sets(s:string);
    function gets:string;
    //und hier die Methoden für den Callback wie in dem Beispiel im letzten Thread

  public
    procedure appendExpData(Value:string);
    property ExpData[i: Integer]: String read getExpData write setExpData;
    property ExpDataCount: Integer read getExpDataCount;
    property s:string read....
  end;
Dieser Beitrag ist für Jugendliche unter 18 Jahren nicht geeignet.
  Mit Zitat antworten Zitat
Antwort Antwort


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 17:15 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