我得到的消息「打開的文件太多」的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