je reçois un EInOutError avec le message « Trop de fichiers ouverts » lors de l'exécution de ce bloc de code à plusieurs reprises pendant un certain temps à partir d'un certain nombre de threads client:Trop de fichiers ouverts
var InputFile : Text;
...
Assign (InputFile, FileName);
Reset (InputFile)
try
// do some stuff
finally
CloseFile (InputFile);
end;
Le nombre de threads client est d'environ 10 , donc seulement 10 fichiers peuvent être ouverts à tout moment. Est-il possible que Delphi refuse de fermer les dossiers tout de suite? Puis-je m'assurer que c'est le cas? Ou est-ce que je fais une erreur ici? C'est le seul endroit où j'ouvre des fichiers et le bloc try..finally devrait garantir que les fichiers ouverts seront fermés, n'est-ce pas?
remodifier: oublier le modifier
Vous voulez dire AssignFile(), n'est-ce pas? – mghie
Peut-être AssignFile> Reset n'est pas threadsafe? >. Essayez d'utiliser des flux comme le recommande mghie. – PetriW