【发布时间】:2015-07-01 06:32:55
【问题描述】:
好吧,我在一个表单上有两个按钮,我想用第一个按钮开始数据传输并在按下第二个按钮时停止。
代码是:
private void stdaq_Click(object sender, EventArgs e)
{
stopped = false;
//while (stopped == false)
if (sender == spdaq)
{
stopped = true;
///break;
Process();
}
else if (sender == stdaq)
{
Process();
}
}
这里 stdaq 是开始按钮,spdaq 是停止按钮,进程函数是我正在实现的一个函数,并且使用 bool 类型的停止变量,我正在进程方法中实现两个不同的函数,但我想不断检查是否按下了停止按钮,但在这里我没有成功。
所以请帮助我了解如何在按下停止按钮时将值 true 传递给启动按钮本身的事件单击函数内的停止变量。
【问题讨论】:
-
进程是某个长时间运行的方法还是每次点击都会再次运行的方法?
-
进程是一个长时间运行的方法,你可以假设它是我在一个while循环中调用它的方法,按下停止按钮它应该会退出它
-
那么你需要让进程在单独的线程上运行,然后定期(在安全时间)检查是否需要取消该方法
-
@Sayse,请提供一些相同的代码来帮助
-
抱歉,我现在没有时间写完整的答案,但this, How to: Use a Background Worker, 应该会有所帮助