データD1、D2、D3を待っている3つのスレッドT1、T2、T3があるとします。データは別のスレッドによって提供されます。スレッドを一時停止するにはどうすればいいのでしょうか。(A)データを手元に置いておくか、別のアプローチとして、私はどのようにして3つのスレッドに1つのループチェックを実行させ、受信したデータに基づいてスレッドを続行する
もう少し具体的にするために、D2が利用可能であると仮定し、解(A)スレッドT2は続行しなければならず、解法(B)は3つすべて継続し、それらのためでなければ、再び失速を確認してください。
私は、データのキーと各スレッドのAutoResetEventを持つ辞書でこれを解決できると知っていますが、それは非常にエレガントではありません...よりエレガントな方法はありますか?
ありがとうございます!
エドウィン。
:
あなたがブロッキング条件を変更する(または潜在的に変更)するたびに、このコードが含まれますデータに基づいています。 [BlockingCollection](https://msdn.microsoft.com/en-us/library/dd267312(v=vs.110).aspx?cs-save-lang = 1&cs-lang = csharp#code-snippet)を使用することができます。 -1)を選択します。 –
Fabio
ありがとうございます。期待しているようだ。 .NET 3.5の解決策は何ですか? – Edwin
.NET 4.6に移動:) – Fabio