导航到页面时,我正在调用视图模型
public void OnNavigatedTo()
{
ThreadPool.QueueUserWorkItem(async o =>
{
collectionsAnswer = await productCategoriesDataService.RequestServerAsync();
***
if (collectionsAnswer.status == Ok)
{
var parsedList = await productCategoriesDataService.Parse(collectionsAnswer.json);
_itemsList = new List<ProductItem>(parsedList);
DispatcherHelper.CheckBeginInvokeOnUI(() =>
RaisePropertyChanged("ItemsList", _itemsList, _itemsList, true));
}
}
如何正确停止/恢复它?我试图从 OnNavigatedFrom() 中止当前的 HttpWebResponse(位于 RequestServerAsync() 内部),但是当我再次返回同一页面时它崩溃了。
所以,简而言之,问题是:
- 导航到页面开始等待命令
- 离开页面(按返回)应该取消当前请求
- 访问页面应创建新请求,但等待仍在等待(如果返回速度足够快)
有没有更好的方法来解决这个问题?也许我应该每次都创建新的视图模型实例?