FutureAnge1
@FutureAnge1
Педалирую потихоньку...

Как получить доступ к MediaPlayer.Position из обработчика таймера?

Имеется кусок следующего кода:

private System.Timers.Timer updatePosTimer = new System.Timers.Timer(250);

        public MediaController() {
            mediaPlayer = new MediaPlayer();
            updatePosTimer.Elapsed += (object s, ElapsedEventArgs e) => HandleUpdatePosTimer();
        }
        private void HandleUpdatePosTimer()
        {
            
            if (Convert.ToInt32(mediaPlayer.Position.TotalSeconds) != Convert.ToInt32(SongPosition.TotalSeconds))
            {
                SongPosition = mediaPlayer.Position;
            }
            
        }


Каждый тик таймер должен проверять не изменилось ли Position у объекта типа MediaPlayer. Но при попытке получения значения свойства Position выбрасывает исключение следующего содержания: "Вызывающий поток не может получить доступ к данному объекту, так как владельцем этого объекта является другой поток".

Помогите пожалуйста разобраться
  • Вопрос задан
  • 39 просмотров
Решения вопроса 1
vabka
@vabka Куратор тега C#
Токсичный шарпист
Dispatcher позволит вам выполнить кусок кода в UI-потоке
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы