为什么 CFRunLoopRun 不起作用?
[self request]; //main thread
- (void)request {
[self performSelectorInBackground:@selector(regFun) withObject:nil];
}
- (void)regFun {
CFRunLoopRun();
CCLOG(@"CFRunLoopRun not work");
}
鉴于前面的代码,您知道为什么 CFRunLoopRun()
不起作用吗?我需要在后台调用 regFun 。
还有其他方法可以停止后台线程吗?
[self request]; //main thread
- (void)request {
[self performSelectorInBackground:@selector(regFun) withObject:nil];
}
- (void)regFun {
CFRunLoopRun();
CCLOG(@"CFRunLoopRun not work");
}
Given the previous code, do you know why CFRunLoopRun()
is not working?. I need to call regFun
in background.
Are there any other ways to stop background thread?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
它可以工作。
但我不确定这是否是正确的方法,我也不知道发生了什么。 :(
It can work.
But I'm not sure this is the right approach, and I don't know what happened. :(
好吧,既然你没有告诉我们你真正需要做什么,让我们猜猜。如果您只想在后台运行选择器,请尝试 Grand Central Dispatch:
OK, since you are not telling us what you really need to do, let’s guess. If you just want to run a selector in the background, try Grand Central Dispatch:
regFun
位于后台线程中,因此对CFRunLoopRun()
的调用在此线程中创建并运行运行循环。只是运行循环没有附加任何内容,因此它会立即退出。regFun
is in a background thread, so the call toCFRunLoopRun()
creates and runs a run loop in this thread. Only there's nothing attached to the run loop, so it exits immediately.