如何强制结束一个阻塞的线程而不报异常 ( 积分: 43 )

  • 主题发起人 主题发起人 k2536
  • 开始时间 开始时间
K

k2536

Unregistered / Unconfirmed
GUEST, unregistred user!
在主线程这外开了个新线程t2 在t2中 用了idhttp控件访问一个网址,如果本机网络是断开的话,那么idhttp 由于访问不到网络会有相当长一断时间的阻塞,在这阻塞期间如果程序退出,就会报错,有没有办法不报错,又可以在idhttp阻塞期间退出程序?
 
有没有人呀,救救 我
 
idHttp支持异步模式吗?
 
TerminateThread
 
如果idhttp在GET 阻塞的时候,强制TerminateThread 当时不出错,当应用程序退出时分跳出异常 某某地址不能为read 这个异常连 try except end 都不行
 
这个用个indy misc控件栏的 idantifreeze组件即可解决,他也是不断的发送application.processmessage来实现的
 
没有代码无法判断你说的问题究竟出在哪里。Indy官方也推荐将Client对象放在Thread里面使用,而不是直接放在界面上 另外加一个IdAntiFreeze控件这种方式。楼主帖下代码吧。
 
我是放在一个新的thread里,可是即使这样,只是介面不冻结,可是问题是,当idhttp在新线程 阻塞的时候,而应用程序要退出,这时调用 thread.Destory 释放线纯种,由于介面线程因为调用 thread.Destory还是阻塞,用TerminateThread 强制结束就不会陏阻塞,但是会在应用程序退出几秒后跳出一个异常,不知道有人看得懂不
 
后退
顶部