Если у вас возникли проблемы с привязками Specflow, например:
и перезапуск Visual Studio или восстановление привязок не работает, тогда SpecFlow Устранение неполадок интеграции Visual Studio предлагает различные решения для Visual Studio 2013 и 2015.
У вас много здесь есть отличные указатели, но не забудьте потратить некоторое время на Руководство по программированию потоков . Он дает хорошее руководство не только по технологиям, но и по хорошему дизайну параллельной обработки, а также по тому, как лучше использовать цикл выполнения как с потоками, так и вместо потоков.
Вы бы сделали
[self performSelectorInBackground:@selector(heavyStuff) withObject:nil];
Для «выстрелил и забыл» попробуйте [самостоятельно выполнитьSelectorInBackground: @selector (heavyStuff) withObject: nil]
. Если у вас есть несколько таких операций, вы можете проверить NSOperation
и его подкласс NSInvocationOperation
. NSOperationQueue
пул управляемых потоков,
Вы можете использовать NSOperationQueue и NSInvocationOperation:
[self myFoo];
NSOperationQueue *operationQueue = [[NSOperationQueue alloc] init];
NSInvocationOperation *operation = [[NSInvocationOperation alloc] initWithTarget:self selector:@selector(heavyStuff) object:nil];
[operationQueue addOperation:operation];
[self myBar];
Если вы нацелились исключительно на Snow Leopard, вы можете использовать Grand Central Dispatch:
[self myFoo];
dispatch_async(dispatch_get_global_queue(0, 0), ^{
[self heavyStuff];
dispatch_async(dispatch_get_main_queue(), ^{
[self myBar];
});
});
Но он не будет работать на более ранних системах (или iPhone) и, вероятно, переборщил.
EDIT: он работает на iPhone с iOS 4.x.
.