for (APCounter = start; APCounter < Stager.InstructionsMemory.Length; APCounter++)
{
PipelineInitializor();
int i1 = APCounter;
int i = APCounter;
tasks[i] = new BlockingCollection<Func<object>>();
tasks[i].Add(() => Fetch(i1));
tasks[i].Add(() => Decode(i1));
tasks[i].Add(() => ALURes(i1));
tasks[i].Add(() => Memory(i1));
tasks[i].Add(() => WriteB(i1));
InstructionThread[i] = new Thread(() => Worker(i1, tasks[i1]));
InstructionThread[i1].Start();
}
これらは、同じ種類のデータ オブジェクトを運ぶが新しいタスク データを持つ新しいスレッドに置き換える必要がある 2 つのスレッドです。
メソッドを使用してみましたがAbort
(これはお勧めしません)、すべての実行が停止し、どの関数を呼び出しても何も実行が再開されませんでした。