c# – 在页面激活长时间运行的任务时写入多个文本行

我写了一个asp.net页面,它打印一些文本如下:

protected void Page_Load(object sender, EventArgs e)
{
    Response.ClearContent();
    for (int i = 0; i <=100; i++)
    {   
        var isOk = DoSomeTask(i);
        context.Response.Write(string.Format("Step {0}: {1}",i, isOk ? "Success": "Error"));
        Thread.Sleep(4000);
    }
}

我遇到了问题,文本只显示页面加载成功的时间.如何在页面执行时呈现文本?

最佳答案 好吧,我在当天很早就读过你的问题,但没有回答,因为我担心我可能无法通过简洁的代码示例为您提供解决方案.使用AJAX和处理程序(ashx)你会遇到同样的障碍,这两个都是相同的.

你有一些进程在服务器上工作,你想要在服务器上发生事情时继续反馈.

你最好的选择是pub-sub模型,在asp.net世界中,SignalR就是这个词!看看官方资源here.

以下是步骤:

>只要您在长时间运行的任务中执行某项工作,就会生成事件
>设置信号器处理程序(集线器),响应步骤1中生成的事件.
>在aspx页面(客户端)连接信号器集线器
>在客户端代码(在setp 3中设置)处理事件(在步骤2中)并更新yuor页面时接收响应.

您可以在服务器端设置信号器处理程序并订阅长时间运行的处理任务

点赞