2010-07-16 6 views
4

시작 및 중지 버튼이 있습니다. 사용자가 원하는만큼 여러 번 작업을 시작하고 중지 할 수 있기를 원합니다. stop 버튼을 눌렀을 때 wait()를 수행하고 시작 버튼을 눌러 스레드를 다시 시작하면 notify()를 수행하여 정상적인 스레드에서 올바르게 작동하게 할 수있었습니다. 이것은 훌륭하게 작동했습니다. 그러나 ... 나는 실을 확장했다. 상사가 스레드를 확장하지 말고 SwingWorker를 사용해야한다고했습니다. 그러나 SwingWorker는 한 번만 실행할 수 있다는 것을 알았습니다. 또는 같은 세션에서 두 번 이상 실행될 수 있습니까? 누군가가 나를 올바른 방향으로 도울 수 있습니까?SwingWorker를 일반 스레드와 비교하여 사용하거나 사용하지 않으려면

답변

1

로직을 실행할 때마다 SwingWorker의 인스턴스을 새로 만들면됩니다. 개인적으로, SwingWorker에 대해 설명 할 때 문제에 대해별로 도움이되지 않습니다. 괜찮아 질 것입니다. ...

3

매우 드물게 Thread을 확장해야합니다. 당신이해야 할 일은 RunnableThread 생성자로 전달하는 것입니다.

내 취향에 따라 SwingWorker은 코드에 너무 많은 커플 링을 추가하며 매우 잘 작동하는 데모에 남겨 두어야합니다.

0

당신이하고있는 일에 대해 SwingWorker가 필요하지 않습니다. SwingWorker는 배경 스레드에서 무언가를 실행해야 할 때 사용되며, 잠그지 않고 GUI (진행률)를 업데이트해야합니다.

당신은 이미 잘 했어.

관련 문제