Я не могу остановить созданную задачу. Следующий код не произойдет
ts?.Cancel();
, и вот как я запускаю задачу
ts = new CancellationTokenSource();
await ((ViewModel)DataContext).loadTitles(progressTitle, ts.Token, prg);
и в viewmodel
public async Task loadTitles(IProgress<int> progress, CancellationToken ct, ProgressBar prg)
{
if (!ct.IsCancellationRequested)
{
foreach (var line in System.IO.Directory.EnumerateFiles(GlobalData.Config.DataPath, "*.jpg", SearchOption.AllDirectories))
{
mprogress += 1;
progress.Report((mprogress * 100 / totalFiles));
var item = ShellFile.FromFilePath(line);
ArtistNames.Add(new ArtistData
{
Name = item.Properties.System.Title.Value,
Tag = line
});
await Task.Delay(5);
}
}
}
Я написал аналогичную функцию для четырех других функций, и задачи хорошо остановлены, но эта не работает.