ASP C#更新内容
我想这对你来说是个简单的问题。我们开始: 在我的.aspx页面上,我有一个标签Label1和一个按钮Button1,周围有一个更新面板 单击按钮将调用代码隐藏方法,如下所示:ASP C#更新内容,c#,multithreading,asp.net,C#,Multithreading,Asp.net,我想这对你来说是个简单的问题。我们开始: 在我的.aspx页面上,我有一个标签Label1和一个按钮Button1,周围有一个更新面板 单击按钮将调用代码隐藏方法,如下所示: protected void Click(object sender, EventArgs e) { ThreadProc("Hello"); Thread.Sleep(2000); ThreadProc("Hello2"); Thread.Sleep(2000); ThreadPr
protected void Click(object sender, EventArgs e) {
ThreadProc("Hello");
Thread.Sleep(2000);
ThreadProc("Hello2");
Thread.Sleep(2000);
ThreadProc("Hello3");
}
void ThreadProc(string info) {
Label1.Text = info;
// UpdatePanel1.Update();
}
我希望看到的是,标签会根据代码的功能进行更新和显示(呈现)。因此它应该Hello,Hello2持续2秒,最后应该显示Hello3。
似乎只渲染最后一个Hello3。有人能解释为什么会发生这种情况,以及我如何实施我的想法吗
我尝试完成的总体任务是单击按钮调用查询不同页面的多线程函数。每当工作线程从任务返回时,它都应该使用新添加的记录更新gridview。在这里,问题是一样的:只有在所有线程都完成了它们的工作之后,Web部件才会更新
非常感谢你的帮助
干杯
Christoph因为代码在web服务器上运行,所以在呈现最终页面并将其发送到客户端的web浏览器之前,它会处理整个方法
单击()。因此,您只会看到最终结果,其中“Hello3”作为Label1.Text
Thread.Sleep(2000)对代码的影响是,来自web服务器的HTTP响应需要4.x秒,而如果忽略它,则只需几秒钟
但是,如果您想查看对Label1.Text
的每次更新,可以通过异步AJAX调用来完成
因为代码在web服务器上运行,所以在呈现最终页面并将其发送到客户端的web浏览器之前,它会处理整个方法Click()
。因此,您只会看到最终结果,其中“Hello3”作为Label1.Text
Thread.Sleep(2000)对代码的影响是,来自web服务器的HTTP响应需要4.x秒,而如果忽略它,则只需几秒钟
但是,如果您想查看对Label1.Text
的每次更新,可以通过异步AJAX调用来完成
实际上,代码的作用如下:
- 该页已被请求
- 在服务器中,标签会更新几次
- 该页面将提供标签的最后一个值
客户端只获取最后一个值,因为此代码的输出只是静态HTML
您试图完成的工作必须在客户端进行编码。您可以使用javascript完成这类工作。实际上,代码的作用如下:
- 该页已被请求
- 在服务器中,标签会更新几次
- 该页面将提供标签的最后一个值
客户端只获取最后一个值,因为此代码的输出只是静态HTML
您试图完成的工作必须在客户端进行编码。您可以使用javascript完成这类工作。非常感谢您的澄清。顺便说一句,我使用essentialObjects ProgressBar+JavaScript实现了我的任务。非常感谢您的澄清。顺便说一句,我使用essentialObjects ProgressBar+JavaScript实现了我的任务。谢谢