Xamarin 我应该在取消后将取消令牌设置为null吗?
我的代码在视图模型中声明一个取消令牌,在OnAppearing中创建它,并在OnDisappearing中取消: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
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();
}
}
}
}
这回答了你的问题吗?