Мне интересно, как я могу сделать доступ к квалифицированному WP-потоку __block
в контексте метода.Objective-C __block ключевое слово и безопасность потоков
Пример:
__block NSMutableDictionary *dictionary = [NSMutableDictionary dictionary];
for (int i=0; i<20; i++) {
NSBlockOperation *operation = [NSBlockOperation blockOperationWithBlock:^{
[dictionary setObject:@"test" forKey:@"test"];
}];
[someConcurrentQueue addOperation:operation];
}
Здесь операция добавляется к параллельной очереди и dictionary
вар будет потенциально доступ из разных потоков одновременно.
Безопасно ли это? Если нет, как я могу сделать доступ к dictionary
безопасным?
Я надеваю «Не верьте, что' __block' необходим здесь, потому что вы не меняете то, что означает «словарь», а только внутренние свойства объекта. Я не уверен в вашей проблеме параллелизма, за исключением очевидного решения просто использовать очередную очередь или обертывать небезопасную операцию в другом блоке, который отправляется в одну последовательную очередь. – UIAdam