プログラムの出力をコンソールに書き込みたいのですが、何らかの理由でコンソールがブロックされているように見えます/機能が終了する前にコンソールが表示されません。
まったく同じ動作を示すサンプル コードを次に示します。
public void startConsole() throws IOException {
long start = System.currentTimeMillis();
MessageConsole console = new MessageConsole("TestConsole", null);
ConsolePlugin.getDefault().getConsoleManager().addConsoles(new IConsole[] {console});
ConsolePlugin.getDefault().getConsoleManager().showConsoleView(console);
MessageConsoleStream stream = console.newMessageStream();
stream.setActivateOnWrite(true);
stream.println("Start: " + (System.currentTimeMillis()-start));
try {
Thread.sleep(1000);
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
stream.println("End: " + (System.currentTimeMillis()-start));
}
私が得るもの: 関数は約 1 秒間実行され、出力が表示されます ("Start: 0\nEnd:1000")
欲しいもの: 関数を起動し、最初の出力 ("Start: 0") を確認し、1 秒後に "End: 1000" をコンソールに追加します。
どうすればこれを達成できますか?