gpt4 book ai didi

c++ - 跨线程调用 a.k.a 从其他线程在主/UI 线程上运行而无需依赖

转载 作者:行者123 更新时间:2023-11-28 04:40:27 24 4
gpt4 key购买 nike

我正在使用一些 C++ 移动产品,但我需要我的应用程序主线程在后台线程上执行一些繁重的工作并在主线程上运行时仍在运行且没有任何阻塞。但我意识到 c++ 线程 api 中没有 runOnMainThread/runOnUIThread。我试图找出问题所在,发现需要依赖库,或者创建自己的线程事件队列。虽然很好,但我想有一个可以运行 OnUIThread 的行为。

最佳答案

它是如何工作的:上述库创建了一个计时器,安装了一个 SIGALRM 信号处理程序,并在信号被触发时分派(dispatch)排队的任务。这允许在主线程上处理任务,即使它很忙。然而POSIX permits only a small set of async-signal-safe functions在信号处理程序内部调用。在信号处理程序中运行任意 с++ 代码违反了该限制并使应用程序处于无可救药的注定状态。

关于c++ - 跨线程调用 a.k.a 从其他线程在主/UI 线程上运行而无需依赖,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50270216/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com