새 스레드에서 작업을 보내고 싶습니다.이 작업을 통해 다양한 단계의 실행 중에 부모 스레드에 알리고 싶습니다. 아래에 표시된 것과 같습니다 :부모 스레드와 통신 할 수있는 새 스레드에서 작업을 디스패치합니다.
void unzip(Path source, Path destination, ObserverThread observer) {
int n = compute number of entries;
observer.notify("n: " + n);
while (there are more entries) {
observer.notify("Unzipping " + name of entry);
unzip the entry;
}
observer.notify("done");
}
이 사용 사례에 대한 표준 라이브러리 전용 솔루션은 무엇이 될까요? (외부 종속성을 원합니다.)
중간 결과를 게시하는 링크가 유용했습니다. 고맙습니다! – missingfaktor
이것은 원래 질문에 대답하지 않습니다. 'SwingWorker'의'publish'와'process'는'protected'입니다. 그것과 그것의 아키텍처는 'SwingWorker'안에 모든 로직을 넣도록 강요합니다. – missingfaktor
논리는 자신의 클래스에 있지만 SwingWorker를 확장해야합니다. 게다가 당신은 SwingWorker에'addPropertyChangeListener'를 할 수 있으며, 진행이 이루어 지거나 자신의 이벤트를 시작할 때 청취자에게 통보됩니다. – Andrejs