我想将程序的输出写入控制台,但是在某种程度上,控制台似乎被阻止/控制台甚至在功能完成之前都没有显示。
以下是一些示例代码,它显示了完全相同的行为:
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));
}
我得到的:该函数运行大约一秒钟,我看到输出("开始:0 \ n结束:1000")
我想要的是:我启动该功能,并看到第一个输出("开始:0"),一秒钟之后,我想要"结束:1000"要添加到控制台。
我如何实现这一目标?
答案 0 :(得分:0)
您需要在新线程中运行该方法。
定义一个用java实现java.lang.Runnable的新类 它的run()方法执行上面显示的内容。
然后,使用Runnable创建java.lang.Thread的实例 您定义的对象。通过调用来启动工作 线程通过在线程实例上调用start()方法。