1

ConcurrentQueueVS2010で C# を使用しています。変数は静的で、オブジェクトはConcurrentQueue異なるスレッドからキューに入れられます。継続的に実行されている別のスレッドで、このオブジェクトをデキューしてデータベースに保存しています。オブジェクトをエンキューした直後に、wcf サービスにも送信されます。最近、wcf サービスによって送信およびログに記録されるオブジェクトはほとんどないことがわかりましたが、キューから取り出された場所ではログに記録されません。

質問: オブジェクトがエンキューされていない可能性はありますか? オブジェクトがキューに入れられているかどうかを確認する方法は?

注: オブジェクトのデキュー中に記録される例外はありません。新しいオブジェクトは約 1000/分で受信され、キューに入れられます。

4

1 に答える 1

0

と一緒に利用できるイベントについてはわかりませんConcurrentQueue。または、クラスを作成してラップし、ConcurrentQueueメソッドを公開することをお勧めしますEnqueue & Dequeue(実際には、ConcurrentQueueオブジェクトからアイテムをエンキューおよびデキューします)。次に、2 つのイベント (ラッパー オブジェクトの一部にする必要がある 2 つのカスタム イベント) を作成します。これは、スレッドが Enqueue または Dequeue 操作を実行するときに、サービス メソッドを呼び出す Enqueue および Dequeue メソッド内でトリガーできます。

于 2013-05-30T10:17:31.693 に答える