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

本文关键字:方法 队列 何使用 实现 线程 安全类 | 更新日期: 2023-09-27 18:37:04

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

如何使用 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结合使用,但它不太灵活。例如,您无法安全地同时添加或删除多个项目。