启动和停止循环,而按钮单击
本文关键字:按钮 单击 循环 启动 | 更新日期: 2023-09-27 18:02:45
我使用下面的代码来启动和停止foreach循环的执行。但start运行良好。当停止按钮点击时,我无法停止循环执行。请帮我做这件事。
private void btn_start_Click(object sender, EventArgs e)
{
if (txt_rows.Text != "") {
thread = new System.Threading.Thread(new System.Threading.ThreadStart(update));
thread.IsBackground = true;
thread.Start();
}
}
private void Update()
{
//My logic here
}
private void btn_stop_Click(object sender, EventArgs e)
{
lbl_appstatus.Text = "Stop"; // Button click event not fired while run the loop
lbl_appstatus.Update();
lbl_appstatus.ForeColor = System.Drawing.Color.Red;
if (thread != null && thread.IsAlive)
thread.Abort();
}
在你的代码中,如果你在开始按钮上点击两次或两次以上,你会看到你以前的线程对象;因此,您不应该创建多个线程。
"开始"answers"停止"点击是对代码隐藏的单独请求。它们使用Page类的单独的实例,这通常意味着两个单独的"线程"变量(您没有显示声明)。
那么在"停止"按钮上点击,thread
的值始终是null
。
对于"InProc"会话,也许可以将该线程值存储在session中,因此您可以在请求中保留该值。