WPF C#如何在同一线程中同时调用/执行1至4个方法

时间:2019-02-11 02:27:12

标签: c# wpf

我有一个1到4个mediaplayer对象的列表,具体取决于用户当时的要求 我需要在每个1-4上同时调用Play方法。

我不需要它们同时并行运行,我只需要调用play方法,以便列表中的所有内容都同时开始。

目前我正在这样做

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

可以,但是我想知道是否有更好的方法。

我尝试过

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

和Parallel.BeginInvoke

但是所有这些似乎都是在新线程中启动的,这导致尝试访问不同线程上的控件时出错。

我只想同时为1到4个媒体播放器对象启动Play()方法

1 个答案:

答案 0 :(得分:0)

好吧,您不能在主线程中同时运行4件事。想象它是一个堆栈,其中每行一次处理一次,在这种情况下,每行都是一个函数。

对于您正在做的事情,应该可以在主线程中依次调用所有四个播放方法,因为您不应在所有四个播放器中都感觉到任何延迟。当您有会阻塞接口的计算密集型任务时,线程处理会更好。为此,您应该参考以下答案:https://stackoverflow.com/a/11625264/11042363