【问题标题】:how to return from the background worker to web UI in asp.net如何从后台工作人员返回到asp.net中的Web UI
【发布时间】:2015-03-31 11:08:34
【问题描述】:

当后台工作者完成时,asp.net 中的后台工作者不会将内容写入 Web UI。请告诉我原因。以及如何恢复。???

static BackgroundWorker bwProcess; 

[WebMethod()]
public static int GetProgress()
{
      return Percentage;
}

点击事件发生时后台工作人员启动

protected void btnClick_Click(object sender, EventArgs e)
    {

        bwProcess = new BackgroundWorker
        {
            WorkerReportsProgress = true,
            WorkerSupportsCancellation = true
        };

        bwProcess.DoWork += new DoWorkEventHandler(bwProcess_DoWork);
        bwProcess.ProgressChanged += new ProgressChangedEventHandler(bwProcess_ProgressChanged);
        bwProcess.RunWorkerCompleted += new RunWorkerCompletedEventHandler(bwProcess_RunWorkerCompleted);

        bwProcess.RunWorkerAsync("AsyncWorker");
    }

为后台工作人员做工作事件

void bwProcess_DoWork(object sender, DoWorkEventArgs e)
        {
            bwProcess.ReportProgress(1);
            for (int i = 0; i <= 100; i++)
            {
                if (bwProcess.CancellationPending) 
                { 
                    e.Cancel = true; 
                    return;
                }
                bwProcess.ReportProgress(i);
                Thread.Sleep(20);
            }

            e.Result = "100 %";
        }

这部分不起作用。它运行坚果没有响应

void bwProcess_RunWorkerCompleted(object sender, RunWorkerCompletedEventArgs e)
        {

            Response.WriteFile("D:\\Samples.xlsx");
        }

【问题讨论】:

    标签: c# asp.net response backgroundworker


    【解决方案1】:

    您已在 DoWork 中向 e.Result 传递了一些东西,但在 RunWorkerCompleted 中却没有使用它。

    void bwProcess_RunWorkerCompleted(object sender, RunWorkerCompletedEventArgs e)
    {
         var text = e.Result as string;
         Response.Write(text);
         Response.WriteFile("D:\\Samples.xlsx");
    }
    

    【讨论】:

    • 但这不起作用。这意味着服务器没有对客户端的响应。写东西时什么也没发生
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-09-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-11-18
    相关资源
    最近更新 更多