4

我对 Java 线程一点也不熟悉.

基本上结构是

public static void draw() {
    // draws stuff


    compare();
}

问题是 drawGUI() 绘制的窗口在处理 (compare() ) 结束之前有一些主要的视觉伪影。

在 draw() 完成执行后,我可以实现启动 compare() 的最简单方法是什么?谢谢

4

2 回答 2

3

简单的方法是将draw()代码放在asyncExec()最后的线程内部

new Thread(new Runnable() {
public void run() {

    //do long running blocking bg stuff here
    Display.getDefault().asyncExec(new Runnable() {
        public void run() {
            draw();
        }   
    }
}).start();
于 2012-07-10T15:25:48.510 回答
1

假设您获得文物的原因是draw()没有机会返回,您可以使用Thread.

final T parent = this;
new Thread(new Runnable() {
    public void run() {
        parent.compare();
    }
}).start();

(其中 T 是具有您的 compare 方法的类的类型)。

于 2012-07-10T15:26:51.460 回答