微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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页面时接收响应.

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

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐