【发布时间】:2013-05-30 10:01:57
【问题描述】:
我在 VS2010 中使用 C# ConcurrentQueue。 ConcurrentQueue 变量是静态的,对象从不同的线程排队。在另一个连续运行的线程中,我正在将此对象出队并存储在数据库中。在对象入队之后,它也被发送到 wcf 服务。最近,我们发现 wcf 服务发送和记录的对象很少,但在出队的地方没有记录。
问题: 该对象是否可能未入队?如何判断对象是否入队?
注意:出列对象时不会记录异常。新对象以大约 1000 个/分钟的速度接收和排队。
【问题讨论】:
-
Enqueue 应该总是可以工作,但它可能需要等待一个锁,也许它只是被阻塞了?在没有看到您的代码排队项目或发送 WCF 请求的情况下,我无法提供任何建议。
-
无法在此处粘贴代码。如果锁不可用,是否有可能丢弃对象?
标签: c# .net multithreading wcf