我遇到了一个相当奇怪的问题,我无法通过 Google 搜索出来。
在一些几乎没有意义的学校演示程序上工作,我需要有一个工作循环来处理它的业务,直到它被一个 CTRL-C 信号中断,然后运行一些其他功能。完成后,程序会从上次中断的地方恢复它的前一个工作循环。
一切都很好,新的按键事件是这样完成的:
Console.TreatControlCAsInput = false;
Console.CancelKeyPress += new ConsoleCancelEventHandler(interrupt);
当按下 CTRL-C 时,“中断”方法被正确调用并执行......一次。
当它通过时,我似乎完全无法通过中断信号再次调用它。任何后续的 CTRL-C 按键都将被完全忽略。
“中断”方法以 .Join 结尾以与其父线程合并,因为事件处理程序出于某种原因在单独的线程上运行。
是什么阻止我根据需要多次调用中断方法?