2

通常,当您尝试在视图模型中执行异步任务时,代码如下所示(简化):

public class MyViewModel
{
    private CancellationTokenSource CTS { get; set; }

    public async Task Process()
    {
        CTS = new CancellationTokenSource();

        try
        {
            await LongRunningTask(CTS.Token);
        } catch (OperationCanceledException) { }
    }

    public async Task Cancel()
    {
        CTS.Cancel();
    }
}

问题是这CancellationTokenSource是一个IDisposable. 这是否意味着我们只是将它放在一个using块中,还是因为它存储在私有财产中,所以还有更多内容?

4

0 回答 0