String result = "";
resut = getResult("1");//如果getResult一分钟后没结果返回(可能没执行完)
就给result赋值"0";

解决方案 »

  1.   

    这就要看这个getResult函数是怎么处理的了。如果超时就返回一个特定的值,检查这个值就可以了;如果超时抛出异常,那么可以在捕捉异常后给定默认值;如果超时了什么也没有……那就没办法了。
      

  2.   

    没有简单的方法除非你做一个线程监视生成的连接,如果监视线程sleep的时间到了查询线程还没有把结果送回你的监视线程,那么就把值送回(没有被查询线程刷新的)
      

  3.   

    就是,就算实现了一分钟后没结果返回,给result赋值为0,(如果没有办法马上结束对result处理的函数)但是恰巧赋值后,result的值又被在函数中设置了值,这时已经超过了一分钟的条件,要进行相应的处理,但此时result的值已经不是0,这好像有些矛盾了。
      

  4.   

    http://blog.csdn.net/CrazyGou/archive/2007/06/12/1648475.aspx
      

  5.   

    用Callable接口FutureTask  ft=new FutureTask (Callable<V> callable);
    Thread.sleep(60000);
    int returnInt;
    if(ft.isDone()){
    returnInt=ft.get();
    }else{
    returnInt=0;
    }
      

  6.   

    少加一句,在else里ft.cancel(true);
      

  7.   

    回复人:huojicq() ( 一级(初级)) 信誉:100  2007-06-12 10:26:54  得分:0

    用Callable接口FutureTask ft=new FutureTask (Callable<V> callable);
    Thread.sleep(60000);
    int returnInt;
    if(ft.isDone()){
    returnInt=ft.get();
    }else{
    returnInt=0;
    }
    -------------------------------------
    你这样写是错的,至少加上这句:new Thread(ft).start();
    并且,如果函数在60000ms内返回了呢?!