我们有一个ViewerFilter用于TableViewer,但是速度有点慢,为了给人留下更好的印象,我们希望在刷新窗口之前让视图器等待500毫秒(否则,在每次按键后都会阻塞)。
由于我不知道自己在做什么,所以尝试创建一个类,检查System.currentTimeMillis()是否大于来自不同线程的最后一次按键时间+500。这只会导致抛出无效线程访问异常,所以我很迷茫。
编辑:我能够使用TableViewer.getTable().getDisplay().asyncExec()绕过无效线程问题,但我不喜欢我的解决方案,希望听到其他建议。
由于我不知道自己在做什么,所以尝试创建一个类,检查System.currentTimeMillis()是否大于来自不同线程的最后一次按键时间+500。这只会导致抛出无效线程访问异常,所以我很迷茫。
编辑:我能够使用TableViewer.getTable().getDisplay().asyncExec()绕过无效线程问题,但我不喜欢我的解决方案,希望听到其他建议。
monitor.beginTask("Refreshing", ProgressMonitor.UNKNOWN);
应该是IProgressMonitor.UNKNOWN
。 - mwalling