WPF C # как вызывать / выполнять от 1 до 4 методов одновременно в одном потоке - PullRequest
0 голосов
/ 11 февраля 2019

У меня есть список от 1 до 4 объектов медиаплеера, в зависимости от того, как может потребоваться пользователь в тот момент, когда мне нужно вызывать метод Play для каждого 1-4 одновременно.

Я не знаюМне не нужно, чтобы они запускались одновременно параллельно. Мне просто нужно вызвать метод play, чтобы все в списке запускались одновременно.

В данный момент я делаю это

    foreach(MyMediaPlayer player in lsPlayers)
     {
       player.Play();
     }

, которая работает нормально, но я хочу знать, есть ли лучший способ.

Я пробовал

Parallel.ForEach(ObjectList, (obj) =>
   {
   // Do parallel work here on each object
    });

и Parallel.BeginInvoke

, но все это, кажется,запуск в новом потоке, что приводит к ошибке при попытке доступа к элементам управления в разных потоках.

Я просто хочу одновременно запустить метод Play () для возможных от 1 до 4 объектов медиаплеера

1 Ответ

0 голосов
/ 11 февраля 2019

Ну, вы не можете запустить 4 вещи одновременно в Главной ветке.Представьте, что это стек, в котором каждая строка обрабатывается один раз, в этом случае каждая строка является функцией.

Для того, что вы делаете, должно быть нормально вызывать все четыре метода воспроизведения последовательно, в MainТема, так как вы не должны ощущать задержки во всех 4 игроках.Потоки работают лучше, когда у вас есть задачи, требующие большого объема вычислений и блокирующие интерфейс.Для этого вы должны обратиться к этому ответу: https://stackoverflow.com/a/11625264/11042363

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...