现在项目客户已经试用了。一个月的期限!但是客户那几个点的网络很不稳定,经常掉线! 
对于项目来说,网络一中断,软件在操作过程中,直接未响应,卡死。 
我想了一种办法是在每个请求数据操作时,进行多线程【开始】-【完成】的控制,但是改动量太大,请问有没有好的办法?
就像QQ一样,网络中断后是怎样还是怎样! 就是没有数据传输了。
软件现在没有本地化操作,都是链接远程数据库的。

解决方案 »

  1.   

    LZ可以只在需要访问的时候再连接服务器,隔几秒发个心跳包,没响应就是网络断了,而为了不阻塞主线程,Lz可以把连接放在子线程里,然后加入超时判断,去遍历创建的子线程
      

  2.   


    如果你的数据库服务器的防火墙没有屏蔽ICMP协议,你可以在访问数据库前Ping一下,这个很快的。如果屏蔽了那就没办法了,因为你要判断服务器还在不在要花费的时间和你连接数据库差不多。如果你仅仅是为了程序不死掉的话,你可以把所有数据库操作放在线程中处理,然后把操作的信息在状态栏或其他地方来处理,提示用户网络是否正常等等。