J'ai un code qui crée un jeton d'annulation
public partial class CardsTabViewModel : BaseViewModel
{
public CancellationTokenSource cts;
public async Task OnAppearing()
{
cts = new CancellationTokenSource(); // << runs as part of OnAppearing()
Code qui l'utilise:
await GetCards(cts.Token);
public async Task GetCards(CancellationToken ct)
{
while (!ct.IsCancellationRequested)
{
App.viewablePhrases = App.DB.GetViewablePhrases(Settings.Mode, Settings.Pts);
await CheckAvailability();
}
}
et le code qui annule ultérieurement ce jeton d'annulation si l'utilisateur s'éloigne de l'écran sur lequel le code ci-dessus s'exécute:
public void OnDisappearing()
{
cts.Cancel();
En ce qui concerne l'annulation, est-ce la bonne façon d'annuler le jeton lorsqu'il est utilisé dans une tâche?
En particulier, j'ai vérifié cette question:
Utilisation de la propriété IsCancellationRequested?
et cela me fait penser que je ne fais pas l'annulation de la bonne façon ou peut-être d'une manière qui peut provoquer une exception.
De plus, dans ce cas après avoir annulé, dois-je faire un cts.Dispose ()?