Ich habe Code, der ein Stornierungs-Token erstellt
public partial class CardsTabViewModel : BaseViewModel
{
public CancellationTokenSource cts;
public async Task OnAppearing()
{
cts = new CancellationTokenSource(); // << runs as part of OnAppearing()
Code, der es verwendet:
await GetCards(cts.Token);
public async Task GetCards(CancellationToken ct)
{
while (!ct.IsCancellationRequested)
{
App.viewablePhrases = App.DB.GetViewablePhrases(Settings.Mode, Settings.Pts);
await CheckAvailability();
}
}
und Code, der dieses Stornierungs-Token später abbricht, wenn sich der Benutzer von dem Bildschirm entfernt, auf dem der obige Code ausgeführt wird:
public void OnDisappearing()
{
cts.Cancel();
Ist dies in Bezug auf das Abbrechen die richtige Methode, um das Token abzubrechen, wenn es in einer Aufgabe verwendet wird?
Insbesondere habe ich diese Frage geprüft:
Verwendung der IsCancellationRequested-Eigenschaft?
und es lässt mich denken, dass ich den Abbruch nicht richtig oder vielleicht auf eine Weise mache, die eine Ausnahme verursachen kann.
Sollte ich in diesem Fall nach dem Abbruch eine cts.Dispose () ausführen?