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
メソッド(これはお勧めしません)を使用しようとしましたが、すべてが実行を停止させました。何を呼び出す関数でも、何も実行を再開しません。
なぜ「i」と「i1」ですか?なぜ私は両方のための '私はなぜですか? –
さて、私は両方のためにそれを使用します。 Ty。 – user1364852