我想创建一个不是主线程的工作线程,所以我可以调用...
[self performSelector:@selector(doStuff) OnThread:self.myWorkerThread withObject:nil];
Run Code Online (Sandbox Code Playgroud)
...在我的代码中的一堆位置.如何创建线程..任何线程并将其分配给变量,以便我可以在我的代码中反复使用它.NSThread detachNewThreadWithSElector只会创建一个用于运行该选择器的目的.我需要创建一个线程并以某种方式使用它.
我正在使用iOS,需要在writerThread上执行所有CoreData写操作.我每次都需要使用相同的线程(不是主线程).
我强烈建议您查看 Grand Central Dispatch :)。您可以通过dispatch_queue_create轻松创建调度队列,或者获取现有并发线程之一并向其发送您想要的任何内容。它将根据工作负载/操作系统状态等创建适当数量的线程。它将如下所示:
dispatch_queue_t queue = dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0);
dispatch_async(queue, ^{
//Do stuff
});
Run Code Online (Sandbox Code Playgroud)
或者您可以查看它的 NS 对应项 NSOperation。我不知道有什么方法可以只用 NSThread 来做到这一点。似乎设置其选择器的唯一方法是用一个来初始化它。
编辑
如果你只想要一个线程,只需调用[[NSThread alloc] init]:p
进一步编辑: iPhone:如何使用performSelector:onThread:withObject:waitUntilDone:方法?
根据这个答案,设置起来会很困难,因为每个线程在创建时都需要一个“main”函数,否则它将什么也不做......
| 归档时间: |
|
| 查看次数: |
10603 次 |
| 最近记录: |