Я использую Queue<T> для кэширования видео.Идея состоит в том, чтобы заполнить его данными (Enqueue), начать играть (Dequeue) и непрерывно заполнять их по мере поступления данных.Можно ли сделать заполнение задней части из фоновой нити?
Queue<T>
Enqueue
Dequeue
Звучит так, будто вы ищете очередь для продюсера / потребителя. Вы можете сделать это, используя Queue<T>, но вам нужно будет добавить блокировку, чтобы гарантировать, что вы никогда не получите доступ к очереди из нескольких потоков одновременно.
Если вы используете .NET 4, Parallel Extensions делает это намного проще с IProducerConsumerCollection<T> и BlockingCollection<T>, которые выполняют всю тяжелую работу для вас.
IProducerConsumerCollection<T>
BlockingCollection<T>
Конечно, вы можете, если заблокируете доступ к очереди с помощью lock () или с помощью объекта Monitor.