0

Google で検索できないという奇妙な問題が発生しています。

ほとんど意味のない学校のデモ プログラムに取り組んでいると、CTRL-C シグナルによって中断されるまでワーカー ループを動作させる必要があり、CTRL-C シグナルは他の機能を実行します。それが完了すると、プログラムは以前のワーカー ループを中断したところから再開します。

すべてが美しく機能し、新しいキープレス イベントは次のように行われます。

Console.TreatControlCAsInput = false;
Console.CancelKeyPress += new ConsoleCancelEventHandler(interrupt);

CTRL-C が押されると、「割り込み」メソッドが正しく呼び出されて実行されます... 1 回。

完了すると、割り込み信号を介して再度呼び出すことがまったくできないようです。その後の CTRL-C キーの押下は完全に無視されます。

イベントハンドラーは何らかの理由で別のスレッドで実行されるため、「割り込み」メソッドは.Joinで終了し、親スレッドとマージします。

割り込みメソッドを何度でも呼び出せない原因は何ですか?

4

3 に答える 3