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