2017-09-04 77 views
0

我不想在后台运行我的线程,但它始终阻止用户界面。 在方法login()dostaff()我使用硒webdriver获取数据并显示它的标签,然后我刷新页面和线程睡60000ms;UI为什么会冻结?

public static class Moderate implements Runnable { 

public void run() { 
    login(); 
    while (true) { 
     dostaff(); 
     try { 
      Thread.sleep(60000); 
     } catch (InterruptedException e) { 
      e.printStackTrace(); 
     } 
    } 
    } 
private void login(){....}; 
private void dostaff(){....}; 
} 

,我把它叫做:

public void ModerateLoop(javafx.scene.control.Label lbl) { 
    this.displayLabel = lbl; 
    Moderate thread = new Moderate(); 
    thread.run(); 
} 
+0

因为while循环基本上是一个无限循环,藏在心里占据 – Stultuske

+1

线程的线程=新主题(新的中等()); thread.start(); –

回答

3

,因为你调用的方法运行

thread.run(); 

所以这是阻塞调用线程,直到你的run方法中的代码完成。

需要而不是开始线程

thread.start();