2

我正在研究一种视频流算法。我已将整个视频分成一组图像。现在每个图像将根据时间进行流式传输(Image.TimeInMs表示图像流式传输或发送的时间)。维持时间我有System.Timer.Timer对象。

_timer = new System.Timers.Timer(250);
_timer.Elapsed += new ElapsedEventHandler(timeCounterIncrementer);
_timer.Enabled = true;

for( i =0; i<imageArray.length;i++)
{
    while (timeCounter < imageArray[i].TimeInMs)
    {                          
        StreamImage();
    }
}

void timeCounterIncrementer(object sender, ElapsedEventArgs e)
{
    timeCounter+=250;            
}

在上面的代码中当while循环运行时timer方法timeCounterIncrementer不会执行。我希望计时器方法一方面运行,另一方面运行 While 循环。换句话说,如何并行运行 while 循环和计时器方法?

4

1 回答 1

4

最近我有一个类似的问题。至少我使用任务并行(任务并行库)修复了它,因为线程对我来说是 2困难:)

如果您完成将两个循环分成方法,则可以并行调用这两个方法,如下所示:

Parallel.Invoke(() => DoSomeWork(), () => DoSomeOtherWork());
于 2012-10-08T07:15:24.560 回答