如何在 OnNavigatedFrom 方法 WinRT windows 10 期间停止页面中的所有线程?

How to stop all the threads in a page during OnNavigatedFrom method WinRT windows 10?

我正在创建一个 windows 10 应用程序。在 onNavigatedTo 中,我正在初始化并行发生一堆异步调用的内容,当我从页面导航时,它们会继续到 运行。我想在从页面导航之前停止所有异步调用,因为我有公共资源,即使在我从源页面导航之后,这些线程也在写入公共资源。有没有办法做到这一点? 示例代码:

foreach(StorageFile sf in list)
{
      StorageItemThumbnail thumb = await sf.GetThumbnailAsync(ThumbnailMode.ListView, thumbnailResize, ThumbnailOptions.ResizeThumbnail);
     //Process the thumbnail and put it in common resouce
}

您可以使用 OnNavigatingFrom 事件。 https://msdn.microsoft.com/en-us/library/windows/apps/windows.ui.xaml.controls.page.onnavigatingfrom.aspx

此事件在您的页面离开之前触发。 然后您可以使用 CancelationToken 取消您的任务。看 Cancellation Token in await method详细了解如何取消。