![]() |
mehrere Datei Schreibvorgänge
Hallo zusammen,
Programme schreiben ist wie Kinder bekommen … man ist sein ganzes Leben für sie verantwortlich… Ein Programm, das sich vor über 15 (!!!) Jahren bei meinem damaligen Arbeitgeber entwickelt habe, verarbeitet Daten, die über eine serielle Schnittstelle von (vereinfacht) mehreren Analog-Digital-Wandlern stammen. Es gibt für die Geräte mehrere Ausbaustufen, 4, 8 und auch 12 AD-Wandler. Die Daten werden dann jeweils pro 2 AD-Wandlern in Dateien auf dem PC gespeichert. Mit 8 AD-Wandlern läuft alles gut auch bei hoher Datenrate. Nun steht, was recht selten vorkommt ein Gerät mit 12 AD-Wandlern zum Verkauf und es gibt Probleme (kurze "Hänger" im Programm, bis hin zu Abbrüchen), zu denen meine Hilfe erbeten wurde. Das Alles nur zur Erklärung und nun meine eigentliche Frage : Wie verwaltet WINDOWS mehre Schreiboperationen auf Dateien? Die Daten kommen asynchron, also ohne zeitlichen Zusammenhang, im Programm an, und werden dann per writeln in Dateien geschrieben. Aus Sicherheitsgründen werden die Dateien jeweils geöffnet und geschlossen. Die Schreibvorgänge liegen nicht in einzelnen Tasks, sondern alle im Hauptprogramm, werden dort also sequenziell behandelt. Mir ist schon klar, dass es noch viele andere Ursachen für die beschriebenen Probleme geben kann, aber hier geht es mir darum, ob es zu einer „Überlastung“ durch (in diesem Fall) maximal 8 Schreibvorgängen kommen kann und wie man sich die Windows-interne Pufferung vorzustellen hat. |
AW: mehrere Datei Schreibvorgänge
Was für 'Abbrüche' kommen denn? Wenn man versucht, eine Datei zum Schreiben zu öffnen, die bereits geöffnet ist, kommt nämlich eine Exception (soweit ich mich erinnere). Du musst deine Schreibvorgänge entweder synchronisieren oder eine Queue für jede Datei schreiben.
Synchronisieren: Warten, bis Datei 'frei' ist, dann schreiben. Queue: Alle Daten in eine Warteschlange schreiben und ein separater Thread schreibt die dann nacheinander in die Datei. |
AW: mehrere Datei Schreibvorgänge
Die Datei wird jedes mal geöffnet und geschlossen.
Details zu den Abbrüchen sind schwer zu spezifizieren, da ich die Informationen auch nur per mail und Telefon erhalte. Meine konkrete Frage beruht auch erstmal nur auf einer Vermutung, ich muß mir mein Programm erst nochmal aus dem Archiv ziehen. Was isch geschrieben habe ist aus dem Gedächtnis rekonstruiert. Bei weniger AD-Wandlern gab / gibt es keine Probleme. |
AW: mehrere Datei Schreibvorgänge
Du solltest definitiv erst einen Blick in deinen Quellcode werfen.
|
AW: mehrere Datei Schreibvorgänge
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 07:05 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 by Thomas Breitkreuz