【发布时间】:2014-12-20 01:44:03
【问题描述】:
对于 idFTP,OnFtpWork 事件确实经常触发。如果它经常将其写入磁盘,那将是浪费时间。有没有办法增加缓冲区,使其每秒写入磁盘的频率不超过一次?
【问题讨论】:
对于 idFTP,OnFtpWork 事件确实经常触发。如果它经常将其写入磁盘,那将是浪费时间。有没有办法增加缓冲区,使其每秒写入磁盘的频率不超过一次?
【问题讨论】:
您可以在执行传输之前设置TIdFTP.IOHandler.SendBufferSize 和TIdFTP.IOHandler.RecvBufferSize 属性。它们将被复制到用于传输连接的IOHandler。
或者您可以使用TIdFTP.OnDataChannelCreate 事件来设置ADataChannel.IOHandler.SendBufferSize 和ADataChannel.IOHandler.RecvBufferSize 属性。
或者你可以实现一个TFileStream派生类,它在内部使用缓冲文件I/O,那么你就不必搞乱TIdFTP的缓冲区了。
【讨论】: