0

ページに移動するとき、ビューモデルで呼び出しています

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() 内にある) を中止しようとしましたが、同じページに再び戻ったときにクラッシュしました。

つまり、要するに、問題は次のとおりです。

  1. ページ開始待機コマンドへの移動
  2. (戻るを押して)ページを離れると、現在のリクエストがキャンセルされます
  3. ページにアクセスすると新しいリクエストが作成されますが、待機はまだ待機中です (十分に速く戻る場合)

この問題を解決するためのより良い方法はありますか? たぶん、毎回ビューモデルの新しいインスタンスを作成する必要がありますか?

4

1 に答える 1