加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

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

发布时间:2020-12-15 22:33:10 所属栏目:百科 来源:网络整理
导读:我写了一个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 ?
我写了一个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页面时接收响应.

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

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读