当一个线程完成任务而另一个线程正在运行时,有没有办法更新 Web 表单 UI

Posted

技术标签:

【中文标题】当一个线程完成任务而另一个线程正在运行时,有没有办法更新 Web 表单 UI【英文标题】:Is there a way to update Web form UI when one thread completes a task and the other is running 【发布时间】:2019-07-08 13:40:51 【问题描述】:

我正在开发 Web 表单并使用线程。当另一个线程正在执行一些长时间运行的任务时,如何在一个线程进程完成后更新我的 UI?基本上我正在创建一个 UI,它将定期显示由长时间运行的任务/线程运行的审计日志。

【问题讨论】:

如果您在谈论 Web 应用程序,请查找 websockets 或 signalr。 不要像这样串接网页,使用AJAX 【参考方案1】:

我为此使用 SignalR。您可以找到它作为 NuGet 包。这是一个介绍它的链接:Introduction to SignalR | Microsoft Docs

要实现您的目标,您必须设置 SignalR,然后在您想要更新客户端屏幕/UI 时调用您的 Hub。网上有很多指南,尤其是聊天应用程序。这是我用来编写进度条的一个,您可能会发现它很有用:SignalR Progress Bar | CodeProject

【讨论】:

以上是关于当一个线程完成任务而另一个线程正在运行时,有没有办法更新 Web 表单 UI的主要内容,如果未能解决你的问题,请参考以下文章

在 Java 中完成任务时线程在增加但不减少

超线程——真的是 X2 内核吗?

只有当可选的主线程任务和工作线程完成时,我如何保证代码的执行?

Java线程死锁

如何通知 CDialog 对象有关来自另一个线程的已完成任务?

如何停止一个正在运行的线程?