我在VS2010中使用C#ConcurrentQueue
。 ConcurrentQueue
变量是静态的,对象从不同的线程排队。在另一个连续运行的线程中,我正在对这个对象进行排队&存储在数据库中。在将对象排入队列之后,它也会被发送到wcf服务。最近,我们发现发送的对象很少。由wcf服务记录但不记录它出列的位置。
问题: 对象是否可能没有入队?如何确保对象是否排队?
注意:对象出列时不会记录异常。收到新对象&排在大约1000 /分钟。
答案 0 :(得分:0)
我不确定ConcurrentQueue
附带的任何活动。或者,我建议您创建一个类并包装您的ConcurrentQueue
,然后将方法公开给Enqueue & Dequeue
(实际上将ConcurrentQueue
对象中的项目排队和出列。然后创建两个事件(两个自定义事件也需要成为您的包装器对象的一部分),这可以在您的Enqueue& Dequeue方法,当线程执行Enqueue或Dequeue操作时将调用您的服务方法。