Xamarin 我应该在取消后将取消令牌设置为null吗?

Xamarin 我应该在取消后将取消令牌设置为null吗?,xamarin,xamarin.forms,Xamarin,Xamarin.forms,我的代码在视图模型中声明一个取消令牌,在OnAppearing中创建它,并在OnDisappearing中取消: public partial class DeckTabViewModel : BaseViewModel { public CancellationTokenSource cts; } public partial class DeckTabViewModel : BaseViewModel { public async Task OnDisappearingAs

我的代码在视图模型中声明一个取消令牌,在OnAppearing中创建它,并在OnDisappearing中取消:

public partial class DeckTabViewModel : BaseViewModel
{
    public CancellationTokenSource cts;
}
public partial class DeckTabViewModel : BaseViewModel
{
    public async Task OnDisappearingAsync()
    {
       cts.Cancel();
    }
}
然后在一次出现中:

public partial class DeckTabViewModel : BaseViewModel
{
    public async Task OnAppearingAsync()
    {
        cts = new CancellationTokenSource();
        await GetCards(cts.Token);
    }
}
关于消失:

public partial class DeckTabViewModel : BaseViewModel
{
    public CancellationTokenSource cts;
}
public partial class DeckTabViewModel : BaseViewModel
{
    public async Task OnDisappearingAsync()
    {
       cts.Cancel();
    }
}
有人能告诉我这是否是使用取消令牌的正确方法吗?我是否应该在OnDisappearing中也将其设置为null?

作为实现,您应该在使用完的情况下处置(在您的示例中,
cts
)的实例:您可以通过调用
dispose
方法直接进行处置,或者间接使用
使用
构造

在您的情况下,在
cts
上调用
Cancel
后,您将调用
Dispose

public partial class DeckTabViewModel : BaseViewModel
{
    public async Task OnDisappearingAsync()
    {
        try
        {
            cts.Cancel();
        }
        finally
        {
             if(cts != null)
             {
                 cts.Dispose();
             }
        }
    }
}

这回答了你的问题吗?