我对 Java 线程一点也不熟悉.
基本上结构是
public static void draw() {
    // draws stuff
    compare();
}
问题是 drawGUI() 绘制的窗口在处理 (compare() ) 结束之前有一些主要的视觉伪影。
在 draw() 完成执行后,我可以实现启动 compare() 的最简单方法是什么?谢谢
我对 Java 线程一点也不熟悉.
基本上结构是
public static void draw() {
    // draws stuff
    compare();
}
问题是 drawGUI() 绘制的窗口在处理 (compare() ) 结束之前有一些主要的视觉伪影。
在 draw() 完成执行后,我可以实现启动 compare() 的最简单方法是什么?谢谢
最简单的方法是将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();
假设您获得文物的原因是draw()没有机会返回,您可以使用Thread.
final T parent = this;
new Thread(new Runnable() {
    public void run() {
        parent.compare();
    }
}).start();
(其中 T 是具有您的 compare 方法的类的类型)。