0

で外部実行可能ファイル (abc.exe など) を呼び出す SWT アプリケーションを作成していますjava.lang.Process。この新しいプロセスは、コンポジットの「開始」ボタンで作成されます。

問題は、executbale abc.exeがハングした場合です。SWT シェル全体がハングします。そのため、「停止」という新しいボタンを追加して、ユーザーがハングしたプロセスを簡単に強制終了できるようにすることを考えましたが、すべてが単一のスレッドで実行されるため、「停止」も押すことができません。

この問題を解決する最善の方法を誰か教えて/教えてもらえますか?

どうもありがとう、トール

4

2 に答える 2

1

バックグラウンド スレッドでプロセスを実行する必要があります。問題は、SWT アプリと abc.exe の両方を同じスレッドで実行していることです。何が起こるかというと、プロセスが要求/応答で順番に処理され、abc.exe プロセスからの応答がないため、そこに座って待機しているということです。abc.exe が長時間実行アルゴリズムを実行している場合も同じことが起こるはずです。

于 2012-07-03T20:19:56.360 に答える
0

プロセスの強制終了は、非常に危険であるため、Java では実際には実装されていません。

于 2012-07-03T20:35:31.203 に答える