比如连接字符串中的服务器地址是个不可到达的地址,那么 ADOConnection 会连半天,主程序界面也会失去响应。尝试使用在线程里面连接,但 VCL 不能在创建的线程里面访问吧,必须同步,但同步的话,不还是等于在主线程里面实现连接吗,界面还是会失去响应……请各位支招!

解决方案 »

  1.   

    写在try
    except
    end
    界面不会失去相应,连不上会马上有响应。
      

  2.   

    关键是这个附属线程访问 ADOConnection 不安全啊,必须放到主线程里面
      

  3.   

    先在一个线程里连接,哪怕成功也要立即关闭的,它只是用于测试网络。
    真正使用的,还是使用主线程里的adoconnection,它需要连接后再使用(网络正常,连接很快的)
      

  4.   

    测试网络,如ping,网络正常,连接很快的
      

  5.   

    在附属线程里用 adoconnection 测试连接还是不安全阿,就是在主线程以外的其他线程里访问 VCL 都是不安全的吧。
    网络正常,但不一定开了服务,界面还是会失去响应。
    看来要先在附属线程里面确保 ADOConnection 一定连接得上服务器,并且在实现的时候不能访问 VCL;
    然后在主线程里根据附属线程的返回结果再决定连接不连接服务器和显示相应的提示信息。