ページに移動するとき、ビューモデルで呼び出しています
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() 内にある) を中止しようとしましたが、同じページに再び戻ったときにクラッシュしました。
つまり、要するに、問題は次のとおりです。
- ページ開始待機コマンドへの移動
- (戻るを押して)ページを離れると、現在のリクエストがキャンセルされます
- ページにアクセスすると新しいリクエストが作成されますが、待機はまだ待機中です (十分に速く戻る場合)
この問題を解決するためのより良い方法はありますか? たぶん、毎回ビューモデルの新しいインスタンスを作成する必要がありますか?