任何循环,直到按下另一个按钮C#

时间:2014-04-14 00:00:47

标签: c# cycle

有没有办法做任何循环并打破它直到另一个按钮 WinForms被按下了吗?

do
        {
            //Action
        } while ("Button Stop is pressed");

2 个答案:

答案 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>