我得到的消息“打开的文件太多”的EInOutError从多个客户端线程的重复执行这个代码块一段时间时:打开的文件太多
var InputFile : Text;
...
Assign (InputFile, FileName);
Reset (InputFile)
try
// do some stuff
finally
CloseFile (InputFile);
end;
客户端线程的数量大约是10 ,所以任何时候只能打开10个文件。 Delphi有没有可能立即拒绝关闭文件?我能确保它确实吗?或者我在这里犯了一个错误?这是我打开文件的唯一地方,try..finally块应该保证打开的文件关闭,不是吗?
REEDIT:忘记编辑
你的意思是AssignFile(),对吧? – mghie 2009-03-02 09:40:51
也许AssignFile>重置不是线程安全的? >。>按照mghie的建议尝试使用流。 – PetriW 2009-03-02 10:19:39