gpt4 book ai didi

objective-c - 在不是主运行循环的 NSRunLoop 上安排 NSStream 事件

转载 作者:可可西里 更新时间:2023-11-01 06:16:30 24 4
gpt4 key购买 nike

我正在使用以下代码在主运行循环上安排事件:

[stream setDelegate:self];
[stream scheduleInRunLoop:[NSRunLoop mainRunLoop] forMode:NSDefaultRunLoopMode];
[stream open];

我假设这意味着 NSStreamDelegate 事件被安排在主运行循环上,因此如果足够频繁,可能会影响 UI 响应能力。这在我的程序中似乎确实是这种情况——即使事件处理程序分离到后台线程中,而他们自己并没有做太多工作。

除了 mainRunLoop 之外,我该如何安排运行循环?我需要创建一个线程吗?我可以直接创建一个 NSRunLoop 吗?需要进行什么设置?

最佳答案

我的建议是使用并发 nsperstion。我在 github 上有一个演示应用程序,展示了如何向此类对象发送消息。你也会发现很多这样的项目。然后,您可以使用带有线程说明符的 performSelector 变体(此类操作的线程是持久的)。

op 有一个运行循环,因此可以发送消息,一个线程,可以很容易地被取消,你可以创建多个线程。

关于objective-c - 在不是主运行循环的 NSRunLoop 上安排 NSStream 事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12441546/

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