首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >performSelector:onThread:在Swift?

performSelector:onThread:在Swift?
EN

Stack Overflow用户
提问于 2014-07-03 06:04:12
回答 1查看 1.8K关注 0票数 6

在当前的iOS应用程序中,我使用了这种执行选择器方法:

代码语言:javascript
复制
[self performSelector:@selector(doSomething)
             onThread:myThread
           withObject:nil
        waitUntilDone:NO
                modes:[NSArray arrayWithObject:NSRunLoopCommonModes]];

我不确定如何在swift中的特定线程上运行选择器。有什么建议吗?

EN

回答 1

Stack Overflow用户

发布于 2014-07-04 06:42:36

正如我在评论中建议的那样,你不应该再管理线程了。总是使用dispatch_queue而不是线程。

如果你真的想这么做,这里有个变通办法:CFRunLoopPerformBlock

这是C代码,但我认为你可以将它转换成Swift代码,而不需要太多的工作。

代码语言:javascript
复制
// worker thread
CFRunLoopRef myrunloop; // some shared variable

void worker_thread_main() {
    myrunloop = CFRunLoopGetCurrent();
    CFRunLoopRun(); // or other methods to run the runloop    
}

// other thread to schedule work

CFRunLoopPerformBlock(myrunloop, kCFRunLoopCommonModes, ^{
    dowork();
});
票数 8
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/24541805

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档