Прежде всего, вы должны прочитать Руководство по программированию параллелизма . Существует несколько способов достижения параллелизма в приложениях Какао, и это руководство объясняет их все подробно.
Вероятно, наиболее близким аналогом функций Carbon являются различные функции Grand Central Dispath (GCD), которые позволяют запускать код в фоновом процессе, передавая блок Objective-C:
dispatch_queue_t aQueue = dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0);
dispatch_async(aQueue, ^{
NSLog(@"Do some work in the background here.");
});
Все это подробно объясняется в документах по параллелизму. К сожалению, мне не удалось найти какую-либо документацию об устаревании многопроцессорного API. Тем не менее, этот API очень устарел, начиная с Mac OS X, и я подозреваю, что Apple полагает, что большая часть кода, использующего его, давно устарела. Я не завидую твоей задаче!
Обратите внимание, что GCD и блоки были введены в 10.6. Если по какой-то причине вам требуется поддержка 10.5, вы можете использовать методы NSOperation
, которые были представлены в этой версии ОС. Они не так просты в использовании, как GCD, но могут достичь аналогичного результата. NSOperation
все еще доступен и очень хорош для определенных случаев использования.