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
你也應該區分你的對象是否「必須活在他自己的線程中」或者你真正想要的是計算是在它自己的線程中執行的。另外,你期望你的結果在哪裏?在對象中?或者是否會有一個完成塊來促進這一點? –