Forum: Programmieren allgemein
by Rollo62,
23. Apr 2020
Ich würde noch die Zeiger konsequent mit den "Atomic" Funktionen abfragen und setzen.
FReadPosition: integer;
FWritePosition: integer;
FCanReadCount: integer;
FCanWriteCount: integer;
So kann man die aus einigen Lock-Blöcken rausziehen, und vermeidet unnötiges Locken.
Forum: Programmieren allgemein
by Rollo62,
17. Apr 2020
Ja, ich benutze eine eigene Klasse die einen TMemoryStream als Speicher benutzt,
um Daten entkoppelt rein- rauszuschreiben.
Darin ist mit WriteBuffer / ReadBuffer die Basisfunktion gemacht,
aber auch andere übliche Varianten Write/Read habe ich implementiert.
Man muss dann noch eine Menge drumrum bauen um das thread sicher zu machen,
und falls nötig dynamisches Allozieren zu ermöglichen....