如何在迭代过程中暂停循环
本文关键字:暂停 循环 过程中 迭代 | 更新日期: 2023-09-27 18:04:00
我需要在迭代中暂停循环(while语句中长系列命令中的任何点)。虽然我知道如何使用事件句柄在迭代结束时暂停,但我不确定如何在命令序列中实现类似的效果。
一个清晰的例子:
Thread 1 :
while (true)
{
// commands
}
Thread 2 :
Console.ReadLine();
//if 1 is pressed the first thread (Thread 1) must immediately pause.
任何帮助都将非常感激。注:我是初学者,所以详细的解释将是无价的。
我不确定如何在命令序列中实现类似的效果。
简单地说:你不应该。除非您知道代码在任何时候都在做什么,否则您不应该尝试中断它。当然,如果代码选择在流中间调用相同的"虽然我理解如何使用事件句柄在迭代结束时暂停"逻辑,那么很好-但这是由运行代码决定的,而不是控制代码。暂停任意代码是破坏东西的好方法,这就是为什么Thread.Suspend
被弃用的原因。
但是这个完全有效:
while (true)
{
ElectivePauseIfNeeded();
// ... some commands
ElectivePauseIfNeeded();
// ... some more commands
}