List<int>
呼び出された を受け入れるメソッドがありますDoWork
。私は巨大な List<int> Ids
を持っています。膨大なリストを 4 つのサブリストに分割します。
List<List<int>> t = (List<List<int>>)SplitColumn<int>(Ids);
(リストをサブリストに分割するSplitColumn
ための回答からわずかに変更されています)。
プログラムを一時停止t
してデバッガーで調べたところ、期待どおりに 4 つのリストが分割されています。
次に、4 つのスレッド (サブリストごとに 1 つ) を生成しようとしています。私が問題を抱えている部分は、4 つのリストを渡すことです。範囲外の問題が発生しています。ここで何が起こっているのかわかりません:
List<Thread> threads = new List<Thread>();
for(int i = 0; i < t.Count; i++)
{
threads.Add(new Thread(() => DoWork(t[i])));
}
foreach (Thread thread in threads)
{
thread.Start();
}
foreach (Thread thread in threads)
{
thread.Join();
}