Einzelnen Beitrag anzeigen

Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
43.157 Beiträge
 
Delphi 12 Athens
 
#1

EndOfFile/EndOfData bei Pipe erkennen

  Alt 10. Okt 2010, 21:55
Wenn man mit ReadFile von einer Communications-Resource ließt und es keine/nicht genug Daten gibt, dann schläft der Thread ein, da die Funktion ja wartet, bis genug Daten gelesen wurden.

Kann man also vor dem ReadFile erkennen, ob etwas/genug zum Lesen vorhanden ist?

SetFilePointer liefert hier ja immer 0 und GetFileSize arbeitet eh nicht
und SetCommTimeouts hat leider keine Wirkung.

Klar gäbe es noch andere Wege:
- asynchrones Lesen mit Timeout
- auslagern in einen Thread und die Daten via Callback rüberschicken, wenn was vorhanden ist
- k.A. was sonst noch

Aber ich würde gern direkt auslesen (also kein Thread) und mir wäre es lieb, wenn ich sofort erfahren würde, ob was vorhanden ist (also kein Timeout abwarten).
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests

Geändert von himitsu (10. Okt 2010 um 23:38 Uhr)
  Mit Zitat antworten Zitat