この宿題を誰かにやってもらうように頼んでいるわけではありませんが、C# とスレッド化の実用的な入門書として非常に優れているので取り上げますが、同時に、少し単純すぎると感じています。
これは本当にスレッドを教える最良の方法ですか? この演習で「失われた」主要なスレッド化の概念は何ですか?初めてスレッドを使用する新しいプログラマーが観察できない可能性があるものは何ですか?
私はスレッド化について多くの理論的知識を持っていますが、過去に自分で多くのことをする必要はありませんでした.それを書くときに誰かが私に警告がありますか?
目標のテキストは次のとおりです。
1) スレッドセーフな汎用循環キュー クラスを作成し、それを使用する GUI を作成します (次のセクションを参照)。このコンテキストでは、スレッド セーフとは、データの破損を避けるために、キューの内容を変更する各操作 (メソッド) を一度に 1 つのスレッドだけで実行する必要があることを意味します。循環キューは、キューの先頭と末尾が配列内のインデックスである固定サイズの配列として実装されます。キューがいっぱいになると、要素が追加されるにつれてキューの最初と最後がより高い値にシフトし、最終的には配列の最初のインデックスにラップアラウンドしてメモリを再利用します。このクラスは、操作が無効な場合、呼び出し元に例外 (以下で指定) もスローする必要があります。
2) プロデューサー/コンシューマー方式で 2 つのスレッドを制御する GUI を作成します。GUI は、プロデューサー スレッドとコンシューマー スレッドの両方を開始、開始、停止し、GenericCircularQueue を変更する速度を制御できます。