0

假设我在 MDI Windows 窗体应用程序中将 Form1 作为父级。它有一个 btnStart 按钮,可以简单地进行大量计算,比如说:

double i;
while(blnContinue)
{
i=(i+1)%100000;
}

Form2 是一个带有 btnStop 按钮的孩子,它简单地分配 blnContinue = false; 这样while循环就会中断;

但关键是,Form2 在按下 btnStop 时无法引发事件。

在这种情况下,可以直接在单独的线程中创建包含 while 循环的函数,并在父窗体中创建 btnStop。

但是我必须在主线程中执行“无限”while循环,所以我不允许将其作为线程并启动/停止它。

任何人都知道如何处理Form2的事件?提前致谢!

4

1 回答 1

0

您需要在循环内调用 Application.DoEvents,比如说每 100 毫秒。我认为没有其他选择。否则,您的整个应用程序将显示为锁定,并且不会在任何地方触发任何事件,因此没有机会做任何事情。有什么东西阻止你使用另一个线程吗?

于 2012-09-10T04:41:29.330 回答