私のJavaプログラムのOpenOffice APIを使って私のために文書を処理します。文書のdisposeメソッドが返されない場合もありますが、CPU負荷は100%にとどまりません発生する。Java:メソッドが返されません。 (XComponent.dispose
をどのように私はこのような状況で正しく/コードを行動しなければならない?
私の現在のアプローチは、2秒間成功するためにdisposeを待つことである。それは私が適切なAPIを通じてのOpenOfficeを終了しようとしていない場合もしそれがうまくいかなかったら(私が期待している通り)、私は電話をかけて土台のプロセスを殺す。
XDesktop xDesk = (...) // achive desktop
xDesk.terminate();
Runtime.getRuntime().exec("pkill soffice"); // "taskkill /IM soffice" on windows
その後、最初にXComponentを処分しようとするスレッドに
disposeThread.stop();
を呼び出します。今ではJava APIにはThread.stop()
が使われてはならないと書かれています(それに有効な引数があります)ので、もっと良い解決策があるかどうか疑問に思っています。
これは、どのように言い回されているかによってプログラマにとっては適切かもしれない質問の1つですが、これはおそらくStackOverflow上にあるはずの技術的および実装固有のものだと思います。 –
@maple_shaft私はそれについて考えましたが、それに対して決心しました。私の特定の問題を処理する方法についての質問であれば、そこに置いておきますが、私はすでに問題の解決策を見つけましたが、特定の解決策よりも優れた概念があるかどうかを尋ねています。しかし、ええ、どのようにその言葉に依存します。 –
@RobZこれはOpen Office固有の質問ではありません。私のオープンなオフィスの状況は単なる例です。 –