Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/289.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/30.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
取消按钮等待BackgroundWorker完成(ASP.NET C#)_C#_Asp.net_Web Applications_Backgroundworker - Fatal编程技术网

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

取消按钮等待BackgroundWorker完成(ASP.NET C#),c#,asp.net,web-applications,backgroundworker,C#,Asp.net,Web Applications,Backgroundworker,我正在使用C#ASP.NET Web应用程序。代码中存在难以跟踪的问题。 假设我有两个按钮:Upload(将一些数据从DataTable上传到数据库)和Cancel(取消上传过程)。问题是上传过程在BackgroundWorker中运行。当用户单击“上载”并开始上载,然后单击“取消”按钮时,在BackgroundWorker上载数据之前,不会触发“取消”按钮 我有这样的代码: protected void Page_Load(object sender, EventArgs e) { b

我正在使用C#ASP.NET Web应用程序。代码中存在难以跟踪的问题。 假设我有两个按钮:Upload(将一些数据从DataTable上传到数据库)和Cancel(取消上传过程)。问题是上传过程在BackgroundWorker中运行。当用户单击“上载”并开始上载,然后单击“取消”按钮时,在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)
{ };
所以,真正发生的情况是,当您单击Upload并取消时,方法private void backgroundWorker1\u ProgressChanged会运行多次(我想,每行数据都会运行一次),只有单击Cancel按钮才能运行方法

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

Thaaanks!:)

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

可能重复感谢您的回答。:)完全不同的问题(可能重复感谢您的回答。)完全不同的问题:(