У меня есть такой метод
public void LoadProgrammeListFromChannel(TVDailyScheduleParam scheduleParam, Action callback)
{
string url = Helper.GetProgrammeUrl(scheduleParam.Day, scheduleParam.Channel.Id); //1//
WebClient client = new WebClient(); //2//
client.OpenReadCompleted += new OpenReadCompletedEventHandler((sender, e) => //3//
{//5//
if (e.Error != null)
return;
try
{
_programmeList.Clear();
_programmeList = DataService.GetProgrammeList(e.Result);
// call method in MainVM to update View
callback();
}
finally
{
// close file stream
e.Result.Close();
}
});
client.OpenReadAsync(new Uri(url, UriKind.Absolute)); //4//
}
, и у меня есть такая команда
LoadWhatsonProgrammeCommand = new RelayCommand(()=>
{
foreach (TVDailyScheduleParam param in _tvDailyScheduleVM.ChannelList.Select(c => new TVDailyScheduleParam(DateTime.Today, c, false)))
{
TVDailyScheduleParam param2 = param;
_tvDailyScheduleVM.LoadProgrammeListFromChannel(param2, ()=>
{
RaisePropertyChanged(TV_DAILY_SCHEDULE_VM);
});
_tvDailyScheduleVM.GetWhatsonProgramme(param2, ()=>
{
RaisePropertyChanged(TV_DAILY_SCHEDULE_VM);
});
}
});
Теперь, когда я вызываю команду.Сначала он запускает _tvDailyScheduleVM.LoadProgrammeListFromChannel
и вызывает метод LoadProgrammeListFromChannel
.
В методе LoadProgrammeListFromChannel
он работает с 1 -> 2 -> 3. На 3 он не завершен, так что он работает до 4 изатем вернитесь к команде и продолжайте выполнять _tvDailyScheduleVM.GetWhatsonProgramme
.
Но _programmeList in LoadProgrammeListFromChannel
не обновляется, поэтому GetWhatsonProgramme
не запускается точно.
Как я могу вернуться к LoadProgrammeListFromChannel
, чтобы запустить 3 и обновить _programmeList
доработает _tvDailyScheduleVM.GetWhatsonProgramme
?