Задать вопрос
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 выбрасывает исключение следующего содержания: "Вызывающий поток не может получить доступ к данному объекту, так как владельцем этого объекта является другой поток".

Помогите пожалуйста разобраться
  • Вопрос задан
  • 48 просмотров
Подписаться 1 Простой Комментировать
Помогут разобраться в теме Все курсы
  • OTUS
    C# Developer. Professional
    6 месяцев
    Далее
  • Ulearn.me
    Основы программирования на примере C#. Часть 1
    1 неделя
    Далее
  • Ulearn.me
    Основы программирования на примере C#. Часть 2
    1 неделя
    Далее
Решения вопроса 1
Dispatcher позволит вам выполнить кусок кода в UI-потоке
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

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

Похожие вопросы