Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/302.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/36.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何使用辅助线程修改标签?_C#_Asp.net_Multithreading - Fatal编程技术网

C# 如何使用辅助线程修改标签?

C# 如何使用辅助线程修改标签?,c#,asp.net,multithreading,C#,Asp.net,Multithreading,我有一个ASP.NET页面,它可以进行web服务调用,并返回一个带有数据的响应,主要是进行一个测试调用,以监视服务是否正常运行。由于有很多调用,我决定在它们自己的线程上运行它们,并在它们完成并返回后使用响应值更新网页上的UI 我以前在Windows窗体应用程序中使用this.Invoke方法让主线程更新标签文本,但通过搜索,我并没有在ASP中找到类似的方法。我看到服务返回一个响应,更新标签文本的代码在每个辅助线程上运行,但标签文本没有任何变化 是否有其他方法可以更改在主线程上创建的标签文本,并使

我有一个ASP.NET页面,它可以进行web服务调用,并返回一个带有数据的响应,主要是进行一个测试调用,以监视服务是否正常运行。由于有很多调用,我决定在它们自己的线程上运行它们,并在它们完成并返回后使用响应值更新网页上的UI

我以前在Windows窗体应用程序中使用this.Invoke方法让主线程更新标签文本,但通过搜索,我并没有在ASP中找到类似的方法。我看到服务返回一个响应,更新标签文本的代码在每个辅助线程上运行,但标签文本没有任何变化


是否有其他方法可以更改在主线程上创建的标签文本,并使用与调用类似的辅助线程?

听起来您希望执行AJAX调用。如果您使用的是ASP.NET Web表单,则需要使用
UpdatePanel
ScriptManager
控件启用部分页面更新


如果您使用MVC或SignalR,还有其他方法可以做到这一点,但我假设作为WinForms开发人员,您可能会使用WebForms

(之前的一位评论者指出,原始请求将很长时间内完成,线程将重新分配到其他地方)。你可以看看signar——你的后台线程应该能够通过hub发出通知,通知客户端。它可能需要一些重大的设计更改/改装。我已经在ScriptManager中安装了一个更新面板。我已经尝试在线程调用的方法末尾调用updatePanel.Update()方法。仍然没有看到UI上的任何更改。@RJ130您是否可以在一些源代码中编辑原始问题?看到你在做什么有助于理解为什么它不起作用。