Top / Eclipse / プラグイン開発のTIPS集 / バックグラウンドで実行する

概要

プログレスバーを用いることで、進捗状況を表示したり、ユーザにキャンセルさせたりすることができるようになりました。しかし、このGUIの難点は処理が長いときは結局待たされてしまうということです。Eclipse2系の時は、仕事で使ってるとビルドで一時間以上Eclipseを占有されてしまうこともザラでした。

さて、Eclipse3.0からはそのような事象に対応すべく「バックグラウンドで実行」する機能があります。Eclipse3.0からはこの機能が随所で使用されていて、ビルドなどの処理中もEclipseを並行して使用することができるようになりました。

プラグインを自分で開発するときも、この機能を用いれば飛躍的にアプリの使い勝手がアップしそうです。が、ネットではほとんど情報を見つけることができませんでした。かろうじて

があるくらいです。

やってみる

とりあえずいろいろ試してみました。基本的に、プログレスモニタとあんま変わらないかなあとあたりをつけて。。。。気にしなくちゃいけないポイントとしては、バックグラウンドで実行できちゃう(=ユーザがEclipseをさわってなんかやっちゃうかもしれない)ので、スレッドを意識しなくちゃいけないこと、くらい???

やらなくちゃいけないことは

みたいですね。

JobクラスでOverrideしなくてはいけないメソッドは

public IStatus run(IProgressMonitor monitor) {

です。

public IStatus run(IProgressMonitor monitor) {
  monitor.beginTask("「" + text + "」でGoogleを検索中...", 10);
  try {
    //スペルチェック開始
    monitor.subTask("スペルチェック");
    monitor.worked(1);
    なんか処理
    monitor.worked(3);
    //スペルチェック終了
    if (monitor.isCanceled()) {
        return Status.CANCEL_STATUS;
    }
    //検索開始
    monitor.subTask("検索中");
    なんか処理
    monitor.worked(3);
    //検索終了
  } catch (CoreException e) {
      return e.getStatus();
  }
  monitor.worked(10);
  monitor.done();
  
  return Status.OK_STATUS;
}

この記事は

選択肢 投票
おもしろかった 0  
そうでもない 0  

Top / Eclipse / プラグイン開発のTIPS集 / バックグラウンドで実行する

現在のアクセス:21561


トップ   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS