gpt4 book ai didi

iphone - 如何创建一个仅由 PerformSelector... 方法调用启动的运行循环?

转载 作者:行者123 更新时间:2023-12-03 16:11:47 25 4
gpt4 key购买 nike

我正在搞乱一些线程。现在考虑一下:我有一个主线程。我开始一个新线程。在它的入口点方法中,我想创建一个运行循环。现在文档告诉我我必须有一个输入源。否则我的运行循环会立即退出。坏的。好的。但除了我的 PerformSelector... 方法调用之外,我没有其他输入源。线程启动后,会出现一个 PerformSelector 方法,该方法将在延迟一段时间后启动该线程上的另一个方法。在该方法内会发生另一个执行选择器调用,依此类推。每个延迟在 0.1 到 1 秒之间。所以重复触发计时器是没有意义的;-)

我如何设置该运行循环,使其保持事件状态以接收来自 PerformSelector 的踢球?我希望线程在无事可做时休眠。但是当performSelector踢到他屁股上时,我希望线程醒来并工作。

大家有什么建议吗?

最佳答案

你想要的代码在Run Loops中的图3-14中有解释在《线程编程指南》中。但它被隐藏在其他讨论中,如果您不理解本页上的其他所有内容,您将不太知道自己在看什么。阅读该部分,然后这段代码将有望有意义:

- (void)startRunLoop:(id)sender
{
NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init];

// Any thread setup

do
{
[[NSRunLoop currentRunLoop] runMode:NSDefaultRunLoopMode
beforeDate:[NSDate distantFuture]];
} while (self.isStarted);

// Any thread cleanup

[pool release];
}

关于iphone - 如何创建一个仅由 PerformSelector... 方法调用启动的运行循环?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1615227/

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