C#如何正确结束/终止任务

时间:2017-09-26 08:22:39

标签: c# task

我有这段代码,我需要使用从服务器获取数据的API,在这样做时我会显示一个加载指示符。我想为用户提供一个取消加载操作的选项,因为从服务器获取数据可能需要很长时间。

我目前的代码与此类似:

var results = new DataTable();
var task = TplUtilities.StartNew(() =>            
{
    loadingIndicator.CancellationTokenSource.Token
        .Register(Thread.CurrentThread.Abort);
    results = api.getDataFromServer();
});
task.Wait();

我的加载指示器有一个取消按钮,如果用户点击它,它将调用loadingIndicator.CancellationTokenSource.Cancel()。

这样可行,但我已经知道,中止一个帖子并不好。那么,结束这项任务的正确方法是什么?

根据我的研究,大多数示例都会对CancellationTokenSource.IsCancellationRequestedCancellationTokenSource.Token.IsCancellationRequested进行循环检查,但我无法在我的任务中执行此操作,因为它会停留在API调用中。< / p>

0 个答案:

没有答案