//新建一个popWin
    PopWaitingDialog popWin = new PopWaitingDialog(mainFrame);
    //启动新线程显示popWin
    SwingUtilities.invokeLater(new Runnable()){
              public void run(){
                    popWin.showMsg("正在编译模板...");
              }
    }
    //同时处理compileTemplate()事件
    int result=templateDesign.compileTemplate();
    //启动新线程处理结果
    SwingUtilities.invokeLater(new Runnable()){
              public void run(){
                   try{
                      //留出CPU时间
                      Thread.sleep(100);
                   }catch(Exception ex){} 
                   //处理完毕,隐藏窗口
                   popWin.hide();
                   //处理返回结果
                   executeResult();
              }
    }
想用这个处理事件等待的情况,能不能帮我看一下可行性??
提出些建议。

解决方案 »

  1.   

    不要使用invokeandwait,容易引起死锁.
      

  2.   

    〉try{
    〉    //留出CPU时间
    〉    Thread.sleep(100);
    〉}catch(Exception ex){} 你这么知道等100毫秒就可以处理完呢?
      

  3.   

    to farawayzheng_necas:    //同时处理compileTemplate()事件
        int result=templateDesign.compileTemplate();
        
        ---已经处理完毕,再留出100ms时间等待。