2013-05-30 69 views
0

我在VS2010中使用C#ConcurrentQueueConcurrentQueue變量是靜態的,對象從不同的線程排隊。在另一個連續運行的線程中,我將這個對象&排隊存儲在數據庫中。在排入對象之後,它也被髮送到wcf服務。最近,我們發現wcf服務記錄的很少的對象被髮送,但它沒有被記錄在出列的地方。確保ConcurrentQueue是否排入對象

問題: 該對象是否有可能未入隊?如何確保對象是否排隊?

注意:出列對象時不會記錄異常。收到的新對象約爲1000/min,排隊等候時間爲&。

+5

代碼在哪裏? – Jon

+0

排隊應該始終工作,但它可能必須等待鎖,也許它只是被阻止?沒有看到您的代碼排隊項目或發送WCF請求,我不能提供任何建議。 –

+0

無法在此處粘貼代碼。如果鎖不可用,是否有可能丟棄該對象? – KKR

回答

0

我不確定任何可與ConcurrentQueue一起使用的活動。或者,我建議你創建一個類幷包裝你的ConcurrentQueue,然後將方法暴露給Enqueue & Dequeue(其實際入隊&從你的ConcurrentQueue對象中取出物品)。然後創建兩個事件(兩個自定義事件也需要作爲包裝器對象的一部分),它可以在Enqueue內部觸發Dequeue方法,這將在線程執行Enqueue或Dequeue操作時調用您的服務方法。

相關問題