つまり、C#であり、基本的には、各スレッドの配列にデータを格納する位置があります。これをロックする必要がありますか?例えば:
int[] threads = new int[12];
各スレッドは配列内の特定の位置にアクセスします。たとえば、スレッド1はthreads [0]、スレッド2のthreads[1]などの値を更新します。
アイデアは、配列に格納されている値をコンソールに出力させることです。
たくさんのコメントがありました。もっと学びたいと思って、自分が何をしているのかを明確にしたいと思いました。つまり、基本的にその要点は次のとおりです。
メインスレッドは12の個別のスレッドを開始し、各スレッドはメインスレッドの関数を呼び出して、データベースから一連のレコードを取得します。そのメソッドへのアクセスはロックされていますが、スレッドが単独で処理するために約100レコードを返します。
スレッドがレコードを処理しているときに、いくつかのWeb要求を行い、データベースに挿入します。スレッドがレコードのバッチの処理を終了すると、メインスレッドから関数を再度呼び出し、その関数は、最後に終了したスレッドの代わりに新しいスレッドを開始します。
スレッドが処理を行っているので、進行状況をコンソールに出力したいと思います。同じ関数が同時に呼び出されると、各出力のカーソル位置がいたるところに移動するため、最初は各コンソール出力をロックしました。そのため、各値のカウントを格納する配列を作成し、それをすべて出力する関数を作成することを考えていました。私はそれが私が現在していることと本当に何か違うのだろうかと思い始めていますが。