如何在JavaFx中终止服务或任务?

如何在JavaFx中终止服务或任务?,java,javafx-8,Java,Javafx 8,如何安全地停止服务或线程以防止IO异常?我尝试过取消的方法,但这不起作用。指导原则是什么?您必须检查任务循环中是否请求取消: package test; import javafx.concurrent.Task; public class TestTask extends Task<String> { @Override protected String call() throws Exception { StringBuilder b

如何安全地停止服务或线程以防止IO异常?我尝试过取消的方法,但这不起作用。指导原则是什么?

您必须检查任务循环中是否请求取消:

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();
    }
}

浏览以开头的段落在Java中没有可靠的方法杀死进程中的线程。。。在中。您可能还希望浏览此网站的一些。这不是工作,不是问题陈述。到底发生了什么?它是否进入取消状态?onSucceeded处理程序是否仍被执行?最后,它不能按您想要的方式工作的原因几乎可以肯定与您编写代码的方式有关。没有人能从你在问题中提供的信息中帮助你。