私は生産者/消費者パターンを使用してBlockingCollection
おり、データを生成してそこからデータを消費するを使用しています。メソッドを呼び出してデータを生成し、にを設定しBlockingCollection
てCompleteAdding
、コンシューマーがからのすべてのデータを消費するようにしますBlockingCollection
。いくつかの処理の後、アプリケーションは他のデータをに追加したいのですが、BlockingCollection
に設定されているためできません。falseに設定するCompleteAdding
にはどうすればよいですか、または?を待たずにCompleteAdding
からすべてのデータを消費するにはどうすればよいですか?BlockingCollection
ComleteAdding
質問する
7067 次
1 に答える
21
できません。呼び出しの要点はCompleteAdding
、「このコレクションにこれ以上データが追加されることはありません。空になると、完了したことがわかります」と言うことです。あなたが求めているのは、「ネットワーク接続を閉じた後、さらにデータを書き込めるように、どうすれば再び開くことができるか」というようなものです。
あなたが提案したいという事実はあなたがあなたのデザインを再考するべきであることを示唆しています。BlockingCollection
おそらく、代わりにこの時点で新しいものを作成する必要がありますか?それとも、最初から電話をかけたくないのでしょCompleteAdding
うか。
于 2012-08-30T10:58:10.227 に答える