multithreading - 从工作线程调用更新 UI 线程是如何工作的?

标签 multithreading user-interface asynchronous

如果我的线程中有一个正在处理某些数据的函数,那么它会调用回调函数来更新 UI 中的状态。

如果 UI 需要时间来处理回调函数,那么它就没那么有用了。 它不应该只在回调函数中处理更新,而是应该向 UI 发送某种消息,这样就不会阻塞?

我的意思是,当在处理函数中调用更新状态函数时,这应该立即返回到处理函数,然后在更新中它可以等待 UI 更新完成。

或者我是否需要第三个线程来处理向 UI 发送更新数据?

最佳答案

通常有一种方法可以将回调发布到 UI 线程而不发生阻塞。

例如:

我确信,如果您查看您正在使用的 UI 工具包的文档,您会发现类似的内容。

关于multithreading - 从工作线程调用更新 UI 线程是如何工作的?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/217645/

相关文章:

c++ - 使用信号量并调用 wait() 和 signal()

delphi - 如何在Delphi中最好地创建HMI显示面板(用户定制界面)

r - 如何让 R Shiny downloadHandler 文件名起作用?

c# - 为什么 async/await 允许从 List 到 IEnumerable 的隐式转换?

c# - C#BackgroundWorker等到结束

ios - Swift/iOS subview 在主线程上不立即显示

c# - 如何将 'quick steps' 样式控件添加到Outlook 2010 功能区?

jquery - Ajax 调用同步与异步?

c# - 在异步操作中锁定对象

c# - WCF + 单例 + 文件传输 + 多线程