0

Eclipse 用のデバッガーを実装しようとしています。このためorg.eclipse.core.runtime.jobs.Job;に、デバッグ デバイスがブレークポイントに到達したときに、Objetct を使用してイベントを処理したいと考えています。この場合thread.resume()は戻ります。スレッドが中断されていても、Jobスリープしません:

Output:
program suspended
cannot sleep
<repeat to infinity>

これはコードです:

@Override
protected IStatus run(IProgressMonitor monitor) {

  while (isTerminated() == false) {

    try {
      if (thread.isSuspended() == true) {
        System.out.println("program suspended");
        if(sleep() == true) { // wait for someone to wake me up
          System.out.println("job is sleeping");                            
        } else {
          System.out.println("cannot sleep");
        }            
      } else {
        thread.resume();
      }
    } catch (DebugException e) {
      e.printStackTrace();
    } 

  }
  return Status.OK_STATUS;      
} 

助けてくれてありがとう。

4

1 に答える 1

0

Job.sleep() は、ジョブの実行中は常に何もせず、false を返します。これは、ジョブの実行がまだスケジュールされている場合に使用するためのものです。コードには通常のスレッドを使用してください。

于 2013-08-10T17:21:15.797 に答える