有没有办法做任何循环并打破它直到另一个按钮 WinForms被按下了吗?
do
{
//Action
} while ("Button Stop is pressed");
答案 0 :(得分:1)
在不阻止gui的情况下执行此操作的最佳方法是使用线程,例如:
Thread t = new Thread (delegate() {
while(true) {
What you want to happen inside the loop in here;
Thread.Sleep(500); // this is useful for keeping the headroom of the CPU
}
});
以这种方式启动线程:
t.Start();
按下停止按钮时,以这种方式中止线程:
t.Abort();
这使gui保持活力。
答案 1 :(得分:0)
有两种可能的情况:
1 - 您正在主线程中运行该循环,然后答案为否,如果您阻止主线程事件将不会触发并且无法捕获按钮。
2 - 您正在工作线程中运行该循环,在这种情况下,您可以在函数设置为true之外创建一个布尔值,在循环中检查此布尔值并在按钮的单击事件中将其设置为false。 / p>