Ich erhalte eine EInOutError mit der Meldung ‚Zu viele offene Dateien‘, wenn sie von einer Reihe von Client-Threads diesen Codeblock wiederholt für einige Zeit ausführen:Zu viele offene Dateien
var InputFile : Text;
...
Assign (InputFile, FileName);
Reset (InputFile)
try
// do some stuff
finally
CloseFile (InputFile);
end;
Die Anzahl der Client-Threads ist ungefähr 10 , so dass nur 10 Dateien zu jeder Zeit geöffnet sein können. Gibt es eine Möglichkeit, dass Delphi es ablehnt, Dateien sofort zu schließen? Kann ich sicherstellen, dass es funktioniert? Oder mache ich hier einen Fehler? Dies ist der einzige Ort, wo ich Dateien öffne und der try..finally Block sollte garantieren, dass geöffnete Dateien geschlossen werden, oder?
reedit: vergessen Sie den bearbeiten
Sie meinen AssignFile(), oder? – mghie
Vielleicht AssignFile> Reset ist nicht threadsafe? >.> Versuchen Sie Streams zu verwenden, wie mghie empfiehlt. – PetriW