를 호출, 내가 뷰 모델중지하고 다시 시작 비동기가
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()에서 RequestServerAsync()의 내부에있는 현재 HttpWebResponse를 중단하려고 시도했지만, 같은 페이지로 다시 돌아올 때 충돌했습니다.
그래서, 짧은에, 문제가 :
- 페이지 시작으로 탐색은, 명령
- 새로운 요청을 만들어야합니다 현재 요청을
- 방문 페이지를 취소해야 (돌아 가기를 눌러) 페이지를 떠나을 기다리고 있습니다 기다리는 중입니다. (충분히 빨리 돌아 오는 경우)
이 문제를 해결하는 더 좋은 방법이 있습니까? 어쩌면 내가 때마다 viewmodels의 새로운 인스턴스를 생성해야합니까?
귀하의 제품 카테고리 데이터 서비스 메소드가 취소 토큰을 허용합니까? –
그리고 ThreadPool에 비동기 호출을 제출하는 이유는 무엇입니까? RequestServerAsync가 진정으로 비동기이면, 호출은 ThreadPool에서 끝날 것입니다. –
@PanagiotisKanavos 그냥 괴롭히는 콜백을 다루기 위해서. –