取消按钮等待BackgroundWorker完成(ASP.NET C#)

时间:2015-07-24 13:23:53

标签: c# asp.net web-applications backgroundworker

我正在使用C#ASP.NET Web应用程序。在代码中存在难以跟踪的问题。 假设我有两个按钮:上传(将一些数据从DataTable上传到数据库)和取消(取消上传过程)。问题是上传过程在BackgroundWorker中运行。当用户点击上传并开始上传然后点击取消时, Cancel_Button_Click 事件在BackgroundWorker上传数据之前不会触发。

我有这样的代码:

protected void Page_Load(object sender, EventArgs e)
{
    backgroundWorker1.ProgressChanged += new System.ComponentModel.ProgressChangedEventHandler(backgroundWorker1_ProgressChanged);
    backgroundWorker1.RunWorkerCompleted += new System.ComponentModel.RunWorkerCompletedEventHandler(backgroundWorker_RunWorkerCompleted);
}

protected void Upload_Button_Click(object sender, EventArgs e)
{ backgroundWorker1.RunWorkerAsync(); }

protected void Cancel_Button_Click(object sender, EventArgs e)
{ backgroundWorker1.CancelAsync(); }

private void backgroundWorker1_ProgressChanged(object sender, ProgressChangedEventArgs e)
{ };

所以真正发生的是当你点击上传并且取消方法私有空白backgroundWorker1_ProgressChanged 多次运行时(每一行一次)数据,我猜)并且只有那个方法 Cancel_Button_Click 运行。

如果我想在点击取消按钮后立即停止数据上传,该怎么办?

Thaaaanks! :)

P.S。我尝试在网上搜索,但我甚至不知道如何用一句话描述我的问题。

0 个答案:

没有答案