minimize

アクション実行時に長い時間の掛かる処理をする場合など、
そのまま処理を記述するとEclipseが固まってしまいます。

public class SampleAction {
    public void run(IAction action) {
        runLongTime(); // この間Eclipseが固まってしまう
    }
    
    /** 5秒間掛かる処理 */
    private void runLongTime() {
        for (int i = 0; i < 5; i++) {
            try {
                Thread.sleep(1000);
            } catch (InterruptedException e) {}
        }
    }
}

Job

これを解決するには、org.eclipse.core.runtime.jobs.Job を使います。
使い方はきわめて簡単です。

new Job("jobName") {
    @Override
    protected IStatus run(IProgressMonitor monitor) {
        runLongTime();
        return Status.OK_STATUS;
    }
}.schedule();

このように、Jobの継承クラスを作成して
その中の run メソッド(abstract)を実装します。
ここで時間の掛かる処理を記述すれば、Eclipseが固まることなく処理が実行できます。

Progress表示

処理中はこのように右下にProgress表示がされます。

[コメント(0)]
[PR] b nEXN[jOb f[^b FXb ]ETCgb SEOb ANZXb nEX[J[b ^ItBXb SEO΍b ҋZb sYSۃ[b vb b nCb AXNb ]Eb یb ev[gb ꗷsb b Ƌhb b zb ҋZb ŗmb Stb wb [VbNb }bT[Wb FXb Mb 365b AtBGCgb эb FXb z[y[Wb fCg[hb FXb COnb zm}\b xXg nC ze [cb ob nCEGfBOb Hawaii hotelsb Hawaii Activitiesb bhhrb
y^cЁup_CVtgvT[rXz nCnIvVicA[ibN}.j - rWlXNXq - iq(1) - iq(2) - COze - ؍s
z[y[W쐬 - ^T[o[ - gуz[y[W - uO - ze \ - ^CVFA - B - nC@Rh~jA - o@ze - nC@sY - v[Pbg@ze
[PR] 1ԍoCN𔄂Ǝ҂T܂񂩁HITCgЉ