我剛剛下載了Eclipse,並在做HelloWorldSWT教程以熟悉IDE。HelloWorldSWT eclipse發生運行時問題
程序運行,但與主循環中的display.sleep()相反,程序繼續佔用CPU週期。這個教程是否正常?我該如何預防呢?
import org.eclipse.swt.widgets.Display;
import org.eclipse.swt.widgets.Shell;
public class HelloWorldSWT {
/**
* @param args
*/
public static void main(String[] args) {
Display display = new Display();
Shell shell = new Shell(display);
shell.setText("Hello world!");
shell.open();
while(!shell.isDisposed()){
display.sleep();
}
display.dispose();
shell.close();
}
}
編輯:我發現
if (!display.readAndDispatch()) {display.sleep();}
解決問題。然而,我仍然不明白檢查非易失事件,然後告訴顯示器進入睡眠狀態,並告訴顯示器進入睡眠狀態會導致此問題。