0
我需要编写一个Objcetive-C类(然后是一个对象)。这个对象必须存在于自己的线程中,以便计算循环(以及所有的方法/函数),而不受GUI事件的影响。有没有一种安全的方式来写这样的课程?Objective C类/自己线程中的对象
我需要编写一个Objcetive-C类(然后是一个对象)。这个对象必须存在于自己的线程中,以便计算循环(以及所有的方法/函数),而不受GUI事件的影响。有没有一种安全的方式来写这样的课程?Objective C类/自己线程中的对象
Apple使用GCD(Grand Central Dispatch)来处理iOS中的线程操作。在你的情况下,dispatch_get_global_queue
可能是你的用例正确的GCD操作。一个例子(引自here):
dispatch_queue_t backgroundQueue = dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0);
dispatch_async(backgroundQueue, ^{
while ([self shouldKeepProcessingInBackground]) {
[self doBackgroundWork];
usleep(1e4);
}
})
线程不应该始终运行循环。它吃电池和CPU。相反,阻止某种信号机制(其中GCD提供了几种信号机制)。 – bbum
使用Grand Central Dispatch为此。也许这可以帮助你:http://jeffreysambells.com/2013/03/01/asynchronous-operations-in-ios-with-grand-central-dispatch – bopa
你也应该区分你的对象是否“必须活在他自己的线程中”或者你真正想要的是计算是在它自己的线程中执行的。另外,你期望你的结果在哪里?在对象中?或者是否会有一个完成块来促进这一点? –