如何使用 c# 实现线程安全类队列的推送和弹出方法



按照一篇好文章的指示,我遇到了我需要解决的问题。如何实现线程安全类队列的推送和弹出方法?

一个简单的锁就可以了。

var synchro = new object();
var queue = new Queue<int>();
lock(synchro)
{
    queue.Enqueue(123); // Add to queue
}
lock(synchro)
{
    var num = queue.Dequeue(); // Remove from queue
}

或者,您可以将ConcurrentQueueBlockingCollection结合使用,但它不太灵活。例如,您无法安全地同时添加或删除多个项目。

最新更新