我有一个来自jface的进度监视器对话框(Indeterminate progress),如果我将fork设置为false,即对话框在主GUI线程中运行,我的监视器将不显示进度,进度条只是空白。 我想在主GUI中运行对话框,但仍想显示进度条。我该怎么办?
确切的问题是:我启动进度监视器然后进行服务器调用,然后在服务器调用返回后;在一个单独的线程中,我从服务器调用的结果进行处理 - 这又是一个UI线程,涉及对话框,视图等。问题是在服务器调用之前启动的第一个线程中的进度监视器(服务器调用是在serparate线程)隐藏在第二个runnable中的对话框/视图后面,用于处理服务器结果
答案 0 :(得分:2)
如果您在UI线程中忙碌,那么进度对话框本身没有时间重绘。 the run method的fork参数不控制对话框是否在UI线程中运行,它始终必须控制是否IRunnableWithProgress
。这就是为什么建议您传递true
。