private void OnStepCompleteMessage(StepCompleteMessage msg) { if (_autoStepOver) { if (_multiChannel) { OnStepCompleteMessageMultiChannel(msg); } else { Task.Run(async() => { await Task.Delay(50); StepViewModel newSelection = GetNextStep(); if (newSelection != null) { DispatcherHelperEx.CheckBeginInvokeOnUI(() => Selected = newSelection); } //if (newSelection != null) Selected = newSelection; }); } } }
private void OnStepCompleteMessageMultiChannel(StepCompleteMessage msg) { Task.Run(async() => { await Task.Delay(50); if (msg.Channel > 0) { var step = GetNextStep(msg.Channel, msg.Index); if (_channelState.AddOrUpdate(msg.Channel, step != null, (k, v) => step != null)) { step.UpdateLazys(); step.ExecuteFarward(); } else { if (_channelFreeBackNotifyId.TryRemove(msg.Channel, out int id)) { MessengerInstance.Send(new MeVmMG.BackNotificationMessage() { DestinationId = id }); } } } else { StepViewModel newSelection = GetNextStep(); if (newSelection != null) { DispatcherHelperEx.CheckBeginInvokeOnUI(() => Selected = newSelection); } } }); }