multithreading - AXUIElement.h 中的函数可以从主线程以外的线程安全调用吗?
问题描述
macOS 辅助功能是线程安全的,还是可以在应用程序主线程以外的线程中安全调用?(即AXUIElement.h中定义的函数)
我已经与他们合作多年,但我仍然无法弄清楚在什么情况下调用这些函数是安全的。过去,我在从应用程序主线程以外的线程调用它们时遇到问题,但通常这些函数很慢,并且不可能在主线程中使用它们而不导致应用程序的 GUI 阻塞,因此我需要使用它们在一个单独的线程中。
据我所知,文档和头文件没有说明在什么上下文中调用这些函数是安全的或它们的线程安全性。
解决方案
我联系了一位苹果工程师直接得到了答案,答案是必须在应用程序的主线程中调用Accessibility函数。
推荐阅读
- c# - 如何创建下一个和上一个按钮来导航列表?
- firebase - 当我使用变量时,Firebase 更新查询无限运行
- asp.net-core - 400 Bad Request error with asp .net core hosted with Dokku on DigitalOcean
- gitlab - TortoiseGit 在尝试 lfs 跟踪文件的差异时响应“/usr/bin/sh: git-lfs: command not found”
- android - 如何将图像添加到 Android Studio 中的随机 ImageView?
- java - 在 Java 中实现 SHA1withRSA
- javascript - I want to put a materialTopTabNavigator under the header echo with navigationOptions of a stack
- c++ - 使 std::optional 构造函数发出隐式转换警告
- docker - 使 Nginx 代理仅升级 Docker Compose 堆栈中的 SignalR WebSocket 连接
- assembly - 为什么不允许 xor'ing DS?