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();
}
这些是一对需要被携带相同类型数据对象但具有新任务数据的新线程替换的线程。
我尝试过使用该Abort
方法(不推荐),它导致一切停止执行,无论我调用什么函数,都没有再次开始执行。