タイトルによれば、これは有効な実装ですか?私はlock
ステートメントの問題を認識していますが、要件のために使用する必要があります。このコードは有効ですか?すべてのスレッドがMonitor.Wait
にブロックされますので、これはスレッド待機/パルシングの有効な実装ですか?
lock (richTextBox)
{
Monitor.Wait(richTextBox);
richTextBox.AppendText("Text");
Monitor.PulseAll(richTextBox);
}
あなたは手段「これは有効な実装である」何より詳細に説明できますか?コードをここに持ってくる原因と思われる問題は何ですか?たとえば、 "does it * compile *"は有効なコードの1つの尺度です。私はそれがコンパイルされると確信しています。しかし、それを理解するためにコンパイラを使用することができました。アルゴリズムが正しく実装されているかどうかは、試してみましたか?それは動作しましたか?あなたはどんな問題に遭遇しましたか? –
私は人々がこの質問で少し厳しくなっていると思う、ここでどのようにモニターが働くのかという明確な誤解があり、それは訂正を保証する。あなたが落ちる時にコメントしてください。 –
この質問の弱点についての丁寧な説明には、@ MerlynMorgan-Grahamに感謝します。 –