【发布时间】:2013-01-22 22:57:36
【问题描述】:
我编写了一个 .NET 程序,使用 Windows 窗体应用程序。 我的应用程序相当简单。 基本上,我的表单上有两个简单的按钮。 首次加载表单时,我设置了一个全局变量(bool run = true)。
我的第一个按钮本质上是一个非常简单的 while 循环。
while(run)
{
// do some code
}
我想要做的是让第二个按钮将布尔值设置为 false(bool run = false)。
但是,一旦我点击了第一个按钮,我什至无法触摸第二个按钮!
我已经阅读了很多关于此的内容,我认为我的解决方案是使用多线程。 我在网上找到了一些用于多线程的示例代码,我试图将它们合并,但我不知道为什么我不能让它工作。一旦我点击按钮 #1,我就无法点击按钮 #2。
【问题讨论】:
-
你不能在 UI 线程上这样做。你想完成什么?
-
你的代码应该响应事件,而不是循环直到事情发生。
-
嗯,通过一个按钮,我正在写入硬盘驱动器(使用 fwrite),通常取决于传输大小和硬盘驱动器的大小,此过程可能需要几分钟,这很好,我得到了那个部分的工作。但是,如果用户愿意,我希望用户能够停止该过程。而且,我不知道该怎么做,因为只要该过程(按钮#1)进行,我就无法触摸表单上的任何其他内容。而且,我想要的只是能够在第一个按钮仍在运行时单击第二个按钮。