我正在使用Queue<T>
来缓存视频。我们的想法是用数据填充(Enqueue
),开始播放(Dequeue
)并在数据到达时不断填充。我可以从后台线程做回填部分吗?
答案 0 :(得分:3)
听起来你正在寻找生产者/消费者队列。您可以使用Queue<T>
执行此操作,但是您需要添加锁定以确保您不会同时从多个线程访问队列。
如果你使用的是.NET 4,那么使用IProducerConsumerCollection<T>
和BlockingCollection<T>
并行扩展可以让这个更多变得更容易。
答案 1 :(得分:0)
当然,如果使用lock()或使用Monitor对象锁定对队列的访问权限,则可以。