AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

SaveToFile synchron oder asynchron?

Ein Thema von S - tefano · begonnen am 26. Jun 2003 · letzter Beitrag vom 26. Jun 2003
Antwort Antwort
Benutzerbild von S - tefano
S - tefano

Registriert seit: 16. Dez 2002
Ort: Dülmen
477 Beiträge
 
Delphi 2009 Professional
 
#1

SaveToFile synchron oder asynchron?

  Alt 26. Jun 2003, 17:11
Hi,

wie der Betreff sagt, würde ich gerne wissen ob mein programm sofort nach Aufruf der SaveToFile- Prozedur weiterläuft, oder ob es erst wartet, bis SaveToFile beendet wurde.
Denn ich würde nachdem ich eine Ansammlung von Daten in eine Datei geschrieben hab einer anderen Anwendung mitteilen, dass sie jetzt mit der Datei weiterarbeiten kann.
Das andere Programm kann das ja nich wirklich überprüfen, denn FileExists funktioniert ja auch wenn die Datei noch garnicht zu Ende geschrieben wurde. Und das andere Programm kann dann ja nicht anfangen zu lesen, wenn noch geschrieben wird...
Also dann, sagt mir bitte was diesbezüglich Sache ist, und in welchem der beiden von mir oben genannten Fälle das Ganze synchron oder asynchron wäre
Wenns zu meinen Ungunsten stehen würde, was gäbe es für Alternativen um rauszufinden, wann SaveToFile fertig ist?

Bis dann,

S - tefano
"Sir, we are surrounded!" - "Excellent, we can attack in every direction!"
  Mit Zitat antworten Zitat
Christian Seehase
(Co-Admin)

Registriert seit: 29. Mai 2002
Ort: Hamburg
11.116 Beiträge
 
Delphi 11 Alexandria
 
#2
  Alt 26. Jun 2003, 17:15
Moin Stefano,

SaveToFile wird irgendwann einmal CreateFile intern aufrufen müssen.
Du könntest also mal die Sourcen durchgehen und Dir ansehen wie SaveToFile arbeitet.
Bei Deiner Version sollten die Sourcen der VCL ja dabei sein.
Tschüss Chris
Die drei Feinde des Programmierers: Sonne, Frischluft und dieses unerträgliche Gebrüll der Vögel.
Der Klügere gibt solange nach bis er der Dumme ist
  Mit Zitat antworten Zitat
Benutzerbild von sakura
sakura

Registriert seit: 10. Jun 2002
Ort: Unterhaching
11.412 Beiträge
 
Delphi 12 Athens
 
#3

Re: SaveToFile synchron oder asynchron?

  Alt 26. Jun 2003, 17:17
Zitat von S - tefano:
wie der Betreff sagt, würde ich gerne wissen ob mein programm sofort nach Aufruf der SaveToFile- Prozedur weiterläuft, oder ob es erst wartet, bis SaveToFile beendet wurde.
Es wird erst gesichert. Allerdings greift an dieser Stelle der Festplatten-Cache-Mechanismus. Von daher kann es trotzdem noch zu einem Datenverlust kommen, wenn der Rechner abschmiert. Wenn Du das auch noch umgehen willst, dann musst Du vorher den Cache leeren lassen, was jedoch wiederum sehr umständlich ist, da abhängig vom OS und diese Funtionen auch nicht dokumentiert sind.

......
Daniel Lizbeth
Ich bin nicht zurück, ich tue nur so
  Mit Zitat antworten Zitat
Benutzerbild von S - tefano
S - tefano

Registriert seit: 16. Dez 2002
Ort: Dülmen
477 Beiträge
 
Delphi 2009 Professional
 
#4
  Alt 26. Jun 2003, 17:58
Hi,

also im Endeffekt scheints darauf hinauszulaufen:

Write(Buffer, Count); Hm.
Da fällt mir gerade was ein, wie sich das alternativ machen lassen würde:
Ich könnte doch mit ner For-Schleife die Elemente (sind Strings) durchgehen und jedes per writeLn in eine Datei schreiben.
Also so mit vorher assignfile, rewrite und so. Sowas hat sich bis jetzt eigentlich immer mit ner Schleife lösen lassen. Also scheint das Prog hier erst nach dem Fertigstellen von writeLn weiterzulaufen, was mir garantiert, dass der Schreibvorgang nach der Schleife auch wirklich beendet ist.

Oder?

Bis dann,

S - tefano
"Sir, we are surrounded!" - "Excellent, we can attack in every direction!"
  Mit Zitat antworten Zitat
Benutzerbild von sakura
sakura

Registriert seit: 10. Jun 2002
Ort: Unterhaching
11.412 Beiträge
 
Delphi 12 Athens
 
#5
  Alt 26. Jun 2003, 18:07
Ist das gleiche wie beim Stream, es wird erst einmal zum Cache gesandt und ist wahrscheinlich sogar langsamer, da Stream dahingehend optimiert sind.

......
Daniel Lizbeth
Ich bin nicht zurück, ich tue nur so
  Mit Zitat antworten Zitat
Benutzerbild von S - tefano
S - tefano

Registriert seit: 16. Dez 2002
Ort: Dülmen
477 Beiträge
 
Delphi 2009 Professional
 
#6
  Alt 26. Jun 2003, 18:32
Hmmmmmm
Mist, jetz hab ich die Prozedur aber schon fertig, all der Code umsonst?
Nein
Juchuuu! Bei meiner Methode kann ich Fehler durch ioresult besser "handlen".
Hoff ich jedenfalls...
Die einzelnen Stings die ich abspeichere sind auch sowieso nicht allzu lang, höchstens mal 20 Zeichen, aber es sind halt sehr viele.
Und bei der heutigen Hardware...

danke.

Bis dann,

S - tefano
"Sir, we are surrounded!" - "Excellent, we can attack in every direction!"
  Mit Zitat antworten Zitat
Christian Seehase
(Co-Admin)

Registriert seit: 29. Mai 2002
Ort: Hamburg
11.116 Beiträge
 
Delphi 11 Alexandria
 
#7
  Alt 26. Jun 2003, 19:38
Moin Stefano,

Zitat von S - tefano:
Bei meiner Methode kann ich Fehler durch ioresult besser "handlen".
Ob es nun besser ist IoResult abfragen zu müssen, oder alles in einen try/except Block zu packen dürfte wohl auch geschackssache sein
Tschüss Chris
Die drei Feinde des Programmierers: Sonne, Frischluft und dieses unerträgliche Gebrüll der Vögel.
Der Klügere gibt solange nach bis er der Dumme ist
  Mit Zitat antworten Zitat
Benutzerbild von S - tefano
S - tefano

Registriert seit: 16. Dez 2002
Ort: Dülmen
477 Beiträge
 
Delphi 2009 Professional
 
#8
  Alt 26. Jun 2003, 19:46
Ach Mist.
Scheint keinem was einzufallen um zu argumentieren dass ich meine eigene Prozedur nehmen sollte. Naja, mal außer der Tatsache dass die Mühe dann umsonst gewesen wäre.
Naja. Aus diesem Grund werde ich jetz einfach meine Prozedur benutzen und alles ignorieren was dagegen spricht

Danke nochmal,

S - tefano
"Sir, we are surrounded!" - "Excellent, we can attack in every direction!"
  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 23:55 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