IndyFTP在changedir时出现死锁
卡住不动了也不返回异常
我尝试着把Indyftp.pas打开看到
changedir是发送sendcmd('CWD DIRNAME ReturnValue);
于是觉得这个问题对我来说有难度
后来想到多线程,可是有些服务器限制1线程
而且这个问题还将出现,这时只能TerminateThread
但是很多书明确指出这个函数使线程未完成就结束
无法回收内存等打开资源我的indy是delphi7自带的,WinXP系统
卡住不动了也不返回异常
我尝试着把Indyftp.pas打开看到
changedir是发送sendcmd('CWD DIRNAME ReturnValue);
于是觉得这个问题对我来说有难度
后来想到多线程,可是有些服务器限制1线程
而且这个问题还将出现,这时只能TerminateThread
但是很多书明确指出这个函数使线程未完成就结束
无法回收内存等打开资源我的indy是delphi7自带的,WinXP系统
解决方案 »
- ApdComPort控件的接收问题
- 动态数组定义赋值编译不通过,但改变却可以便宜通过,请问问题存在哪里,为什么
- 判断登录用户:如何在不同窗体间传递变量?
- 高分求:用MODEN(调制解调器)实现自动通知和自动应答系统的编程技术! 欢迎探讨!分不够再开帖!!!
- 高手求救!!怎么让DBGridEh中的CheckBox选中??
- 如何清空存储过程中参数的值?
- Delphi路在何方?
- 怎样将一个函数写成DLL文件,又怎样调用这个函数??
- 請問大家:在notepad中,如何輸入頓號,呵呵.
- 帮帮我,各位大侠。(关于OLE)
- 如何判断鼠标是否在某个可视控件上?
- 每次打开www.csdn.net的时候,第一眼看的就是头版新闻的位置,希望出现DELPHI的消息,等待中
当时用d6中IndyFTP出现Cpu占用100%的问题,查了好久才查到是IndyFtp的问题后来用Win API自己写了一个简单的FTP函数,问题解决所以不推荐用IndyFTP
http://topic.csdn.net/T/20041118/09/3563622.html
哎,对抛弃indyftp的想法表示120分的不理解
遇到这样的问题居然没有任何办法
连高手都说换WinAPI去做.
又没那么多时间去看了,呵呵不敢称为高手,在不断的学习中
有如下说明
{2002-04-12 - Andrew P.Rybin
- ReadLn bugfix and optimization
2002-01-20 - Chad Z. Hower a.k.a Kudzu
-WriteBuffer change was not correct. Removed. Need info on original problem to fix properly.
-Modified ReadLnWait...
看来Chad Z. Hower a.k.a Kudzu曾发现ReadLnWait有问题
所以他Modified ReadLnWait
加入参数AFailCount
function ReadLnWait(AFailCount: Integer = MaxInt): string;
这样默认在读MaxInt(=32767)次都为无效数据后才放弃曾经读取的内容.
可能是因为MaxInt太大
导致了凡是引用IdTCPConnection发送命令的操作均可能因浪费资源而死锁
------------
所以我想尝试定义AFailCount: Integer = 较小的数字,例如
function ReadLnWait(AFailCount: Integer = 50): string;
在一个小时的测试中暂时没有出现死锁问提