0

我正在使用Queue<T>缓存视频。这个想法是用数据(Enqueue)填充它,开始播放(Dequeue)并在数据到达时不断填充。我可以从后台线程进行填充吗?

4

2 回答 2

3

听起来您正在寻找生产者/消费者队列。您可以使用 来执行此操作Queue<T>,但您需要添加锁定以确保您永远不会同时从多个线程访问队列。

如果您使用的是 .NET 4,Parallel Extensions 可以让这一切变得更容易,IProducerConsumerCollection<T>BlockingCollection<T>为您完成所有艰苦的工作。

于 2010-09-10T10:55:46.057 回答
0

当然,如果您使用 lock() 或使用 Monitor 对象锁定对队列的访问,则可以。

于 2010-09-10T10:55:33.263 回答