C# ConcurrentQueue中的Enqueue和TrydQueue

C# ConcurrentQueue中的Enqueue和TrydQueue,c#,.net,multithreading,thread-safety,C#,.net,Multithreading,Thread Safety,有一个ConcurrentQueue实例和两个并发访问它的线程。一个线程连续排队项目可能是在100微秒内排队几个项目,另一个线程尝试逐项排队并进行一些处理。有一个ManualResetEvent在任何项目进入队列后向处理线程发送信号。这与此问题不太相关 在这种情况下,是否有可能将项目以错误的顺序添加到ConcurrentQueue中。我知道它是线程安全的,但我只是想确定它是否会在更快地排队和退队时扰乱项目的顺序 这些物品绝对不会乱序 首先,根据定义,队列强制执行FIFO顺序:将元素放在一端,然后

有一个ConcurrentQueue实例和两个并发访问它的线程。一个线程连续排队项目可能是在100微秒内排队几个项目,另一个线程尝试逐项排队并进行一些处理。有一个ManualResetEvent在任何项目进入队列后向处理线程发送信号。这与此问题不太相关


在这种情况下,是否有可能将项目以错误的顺序添加到ConcurrentQueue中。我知道它是线程安全的,但我只是想确定它是否会在更快地排队和退队时扰乱项目的顺序

这些物品绝对不会乱序


首先,根据定义,队列强制执行FIFO顺序:将元素放在一端,然后从另一端取出。由于这是由单一生产商和单一消费者模式完成的,因此绝对安全。

这些商品绝对不会出现故障


首先,根据定义,队列强制执行FIFO顺序:将元素放在一端,然后从另一端取出。由于这是由单一生产商单一消费者模式完成的,因此绝对安全。

这是一个队列!如果它能对条目进行重新排序,他们会称之为ConcurrentBag之类的东西。生产者-消费者队列管道上出现问题的唯一方法是如果有多个消费者线程。

这是一个队列!如果它能对条目进行重新排序,他们会称之为ConcurrentBag之类的东西。生产者-消费者队列管道上出现问题的唯一方法是,如果存在多个消费者线程。

“在任何项目进入队列后,有一个ManualResetEvent向处理线程发送信号”:这是一个队列!如果它能重新排序条目,他们会称之为ConcurrentBingoMachine、ConcurrentLocking、ConcurrentShopping台车或其他东西。生产者-消费者队列管道上出现问题的唯一方法是存在多个消费者线程。目前,有一个“ConcurrentBag”类,因此,不是ConcurrentBingoMachine:同意Martin的说法。也许你可以用相关代码发布你的实际问题@马丁·詹姆斯:谢谢你对无序队列的命名建议。顺便说一句,你能解释一下,在生产者-消费者队列管道上出现问题的唯一方法是如果存在多个消费者线程有一个ManualResetEvent在任何项目进入队列后向处理线程发送信号:“这是一个队列!如果它能重新排序条目,他们会称之为ConcurrentBingoMachine、ConcurrentLocking、ConcurrentShopping台车或其他东西。生产者-消费者队列管道上出现问题的唯一方法是存在多个消费者线程。目前,有一个“ConcurrentBag”类,因此,不是ConcurrentBingoMachine:同意Martin的说法。也许你可以用相关代码发布你的实际问题@马丁·詹姆斯:谢谢你对无序队列的命名建议。顺便说一句,你能解释一下,在生产者-消费者队列管道上出现问题的唯一方法是,如果存在多个消费者线程?我觉得ConcurrentShoppingTroly是个更好的名字我觉得ConcurrentShoppingTroly是个更好的名字