Ho un codice che crea un token di annullamento
public partial class CardsTabViewModel : BaseViewModel
{
public CancellationTokenSource cts;
public async Task OnAppearing()
{
cts = new CancellationTokenSource(); // << runs as part of OnAppearing()
Codice che lo utilizza:
await GetCards(cts.Token);
public async Task GetCards(CancellationToken ct)
{
while (!ct.IsCancellationRequested)
{
App.viewablePhrases = App.DB.GetViewablePhrases(Settings.Mode, Settings.Pts);
await CheckAvailability();
}
}
e codice che successivamente annulla questo token di annullamento se l'utente si allontana dalla schermata in cui è in esecuzione il codice sopra:
public void OnDisappearing()
{
cts.Cancel();
Per quanto riguarda la cancellazione, è questo il modo corretto di annullare il token quando viene utilizzato in un'attività?
In particolare ho verificato questa domanda:
L'uso della proprietà IsCancellationRequested?
e mi sta facendo pensare che non sto facendo l'annullamento nel modo corretto o forse in un modo che può causare un'eccezione.
Inoltre, in questo caso dopo che ho annullato, dovrei fare un cts.Dispose ()?