-1
IO 예외를 방지하기 위해 서비스 또는 스레드를 안전하게 중지 할 수 있습니까? 취소 메서드를 시도했지만 작동하지 않습니다. 지침은 무엇입니까?JavaFx에서 서비스 또는 작업을 어떻게 죽일 수 있습니까?
IO 예외를 방지하기 위해 서비스 또는 스레드를 안전하게 중지 할 수 있습니까? 취소 메서드를 시도했지만 작동하지 않습니다. 지침은 무엇입니까?JavaFx에서 서비스 또는 작업을 어떻게 죽일 수 있습니까?
당신은 당신의 작업 루프 내부에 요청 된 취소 여부를 확인해야한다 :
package test;
import javafx.concurrent.Task;
public class TestTask extends Task<String>
{
@Override
protected String call() throws Exception
{
StringBuilder builder = new StringBuilder();
int max = 1000;
for (int i = 0; i < max; i++)
{
if (isCancelled())
{
throw new InterruptedException();
}
builder.append(i);
updateProgress(i, max - 1);
}
return builder.toString();
}
}
"이 과정에서 스레드를 죽일"자바에서 할 신뢰할 수있는 방법이 없다 "로 시작하는 단락을 통해 이동 ... "(Javadoc 작업) (https://docs.oracle.com/javase/8/javafx/api/javafx/concurrent/Task.html#cancel--). – ItachiUchiha
또한이 사이트에 대한 [도움말 페이지] (http://stackoverflow.com/help/asking)를 살펴볼 수도 있습니다. "이건 일이 아니야."문제는 아닙니다. 실제로는 어떻게됩니까? 그것은 'CANCELLED'상태로 들어가는가? 'onSucceeded' 핸들러가 여전히 실행됩니까? 결국, 당신이 원하는 방식대로 작동하지 않는 이유는 무엇이든간에 (거의 확실하게) 코드를 작성한 방식과 관련이 있습니다. 아무도 질문에서 제공 한 정보에서 그걸 도울 수 없습니다. –