macos - 我可以更改 XPC 服务的服务质量级别吗?
问题描述
我希望在我的应用程序中放置一个 XPC 服务,该服务需要立即处理用户输入(它从单独的进程接收)。
QOS的文档指出:
在 XPC 服务中,主线程以默认的 QoS 运行
我需要能够将 XPC 服务线程设置为具有 QoSuser-interactive
以确保用户输入事件以确保发生这种情况。
是否可以更改 XPC 服务线程的 QoS?
我知道我可以创建一个守护进程并使用以下方法设置任务策略:
struct task_qos_policy qosinfo;
memset(&qosinfo, 0, sizeof(qosinfo));
qosinfo.task_latency_qos_tier = LATENCY_QOS_TIER_0;
qosinfo.task_throughput_qos_tier = THROUGHPUT_QOS_TIER_0;
task_policy_set(mach_task_self(),
TASK_BASE_QOS_POLICY,
&qosinfo,
TASK_QOS_POLICY_COUNT);
做这样的事情,比如在 XPC 服务的主要方法中,是实现这一目标的一种可能和适当的方式吗?
我当然可以创建一个守护进程,但我目前正在研究如何使我的架构与沙盒一起工作,以便我可以通过 Mac App Store 分发。
解决方案
推荐阅读
- javascript - 如何制作一个 chrome 扩展程序来读取我正在访问的网站中的文本?
- python - numpy 显示图像列表的错误尺寸
- regex - 形式语言理论(正则表达式和正则语言)-“或”的概念
- javascript - 使用正则表达式计算文本中的数字
- mongodb - 如何为以下用例实现部分数据的复制
- r - 属性()是R中的函数吗?
- libraries - 在 EMR 上的 Jupyter/JupiterHub 上将库添加到 PySpark 内核
- python - Django注册表单中不区分大小写的用户名
- android - 如何在颤振中使用奖励视频听众?
- android - 在 WeakReference 上调用 clear() 不起作用