2017-09-04 101 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();