Online
Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.226 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).
$2B or not $2B
Geändert von himitsu (11. Okt 2010 um 00:38 Uhr)
|