在当前的iOS应用中,我正在使用此执行选择器方法:
[self performSelector:@selector(doSomething)
onThread:myThread
withObject:nil
waitUntilDone:NO
modes:[NSArray arrayWithObject:NSRunLoopCommonModes]];
我不确定如何在swift中的特定线程上运行选择器。有什么建议吗?
答案 0 :(得分:6)
正如我在评论中建议的那样,你不应该再管理线程了。始终使用dispatch_queue而不是线程。
如果你真的想要这样做,这是一个解决方法:CFRunLoopPerformBlock。
这是C代码,但我认为您可以将其转换为Swift代码,而无需太多工作。
// 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();
});