0
응용 프로그램의 로컬 데이터베이스에서 일부 데이터를 검색하고 UI에 일부 데이터를 검색하는 동안 사용자에게 간단한 진행 모니터 대화 상자를 표시하려고합니다.UI가있는 Java SWT ProgressMonitorDialog
현재 UI 스레드에서 Display.getDefault().asyncExec
으로 검색을 수행하는 ProgressMonitorDialog를 사용하고 있습니다. 이제 검색은 정말 느립니다. 진행률 대화 상자를 표시하고 데이터베이스에서 검색을 수행하며 성능 손실없이 사용자에게 결과를 표시하는 올바른 스레드 사용은 무엇입니까? 와
class MyJob extends Job
{
public MyJob()
{
super("title");
setUser(true);
}
@Override
protected IStatus run(final IProgressMonitor monitor)
{
... your code
return Status.OK_STATUS;
}
}
사용 : Eclipse 플러그인 또는 RCP Job
를 사용에서 장기 실행 코드에 대한
private void doSearchWithProgressDialog() {
ProgressMonitorDialog progressDialog = new ProgressMonitorDialog(null);
try {
progressDialog.run(true, true, new IRunnableWithProgress() {
@Override
public void run(IProgressMonitor monitor) throws InvocationTargetException, InterruptedException {
// display progress monitor dialog while searching
monitor.beginTask("Waiting..."), IProgressMonitor.UNKNOWN);
Display.getDefault().asyncExec(new Runnable() {
@Override
public void run() {
// perform database query
doSearchAndDisplayResult();
}
});
monitor.done();
}
});
}
catch (InvocationTargetException e) {
log.error(e.getMessage(), e);
throw new RuntimeException(e);
}
catch (InterruptedException e) {
log.error(e.getMessage(), e);
throw new RuntimeException(e);
}
}
이 플러그인은 Eclipse 플러그인의 일부입니까? '직업'이라면 적절할 것입니다. –
Eclipse RCP 응용 프로그램의 일부입니다. –