Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.051 Beiträge
Delphi 12 Athens
|
EndOfFile/EndOfData bei Pipe erkennen
10. Okt 2010, 22: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).
Neuste Erkenntnis:
Seit Pos einen dritten Parameter hat,
wird PoSex im Delphi viel seltener praktiziert.
Geändert von himitsu (11. Okt 2010 um 00:38 Uhr)
|