2012-01-16 5 views
1

약 1500 개의 노드를 가진 그래프에 대한 정보를 수집하기 위해 웹 서비스를 호출하고 있습니다. 우리는 노드와 모서리를 계속 추가하면서 그래프를 Prefuse에 표시합니다. 대부분의 경우이 기능은 훌륭하게 작동하지만 모든 응용 프로그램이 일시 중지되고 복구 할 수있는 유일한 방법은 응용 프로그램을 종료하고 다시 시작하는 것입니다. 이 경우 예외가 인쇄되지 않습니다. 다른 경우에는 "IllegalArgumentException : Invalid row index : -1"이 표시되는 경우가 많지만 앱 고정과 관련이없는 것 같습니다.Prefuse가 JFrame을 고정시킵니다.

freezing in applets에 관한 관련 질문이 있지만 애플릿이 아닌 JFrame에서 실행됩니다. 이것이 우리의 문제 였을 경우, 우리는 코드의 여러 위치에서 ActivityManager.stopThread() (kill 메소드를 찾을 수 없음)를 호출 해 보았습니다. 어떤 차이가 있다면 이것은별로 보이지 않습니다.

prefuse 그래프를 편집하는 동안 그래프를 표시하는 스레드 안전 방법이 있습니까?

+0

코드를 표시해야 할 수도 있습니다. – Viruzzo

+0

그 스레드에서 권장하는대로'kill()'을 호출 해 보았습니까? –

+0

더 이상 kill 메소드가 없습니다. 나는 그것이 단지 stopThread()로 대체되었다고 추측한다. –

답변

0

그래프를 편집하는 동안 그래프를 표시하는 스레드 안전 방법이 있습니까?

모든 업데이트는 EDT에서 수행해야합니다. SwingWorker를 사용하십시오.

자세한 내용은 Concurrency in Swing을 참조하십시오.

+1

물론 gui에 대한 모든 업데이트는 EDT에 있어야합니다. 그것은 디버깅 프리 퓨즈를 사용하여 전혀 도움이되지 않습니다. –

관련 문제