日期:2014-05-20  浏览次数:20786 次

new Runnable() 问题?
final Collection coll = Collection.getInstance();
coll.setMap(map);
coll.setProgressBar(progressBar);
coll.start();

new Runnable() { // 这条线程 检查 coll 是否工作完成
public void run() {
boolean flag = true;
while (flag) {
try {
System.out.println("d"); //这里为什么没有输出
Thread.sleep(500);
} catch (InterruptedException e) {
e.printStackTrace();
}
flag = coll.isFlag();
}
if (!flag) {
System.out.println("ok"); // 这里也没有输出
Stop();
}
}
};

就像是这条线程没有被执行一样,怎么回事丫

------解决方案--------------------
你光定义了一个匿名类,可是我没看到你启动这个线程啊???

你应该

Java code
    new Thread(new Runnable() { // 这条线程 检查 coll 是否工作完成
      public void run() {
        boolean flag = true;
        while (flag) {
          try {
            System.out.println("d"); // 这里为什么没有输出
            Thread.sleep(500);
          } catch (InterruptedException e) {
            e.printStackTrace();
          }

        }
        if (!flag) {
          System.out.println("ok"); // 这里也没有输出

        }
      }
    }).start();