J'ai une NSOperationQueue avec un certain nombre de NSOperations dedans. Je veux m'assurer qu'une partie particulière du code n'est pas exécutée en parallèle. J'utilise un objet NSLock comme ceci:NSOperation ne génère pas un nouveau thread?
[myLock lock]
some critical code
[myLock unlock]
Malheureusement, au lieu d'un blocage d'appel "lock" Je reçois l'erreur suivante:
- [verrouillage NSLock]: blocage ('(null)')
Après quelques recherches, j'ai remarqué que tous les NSOperations semblent fonctionner dans le même thread. Je dessinais cette conclusion après l'enregistrement de l'ID du sujet avec:
NSLog(@"Thread %@\n", self, [NSThread currentThread]);
Toutes les opérations semblent fonctionner dans le même fil. Même s'ils fonctionnent en parallèle en tant qu'opérations.
Est-ce que cela a du sens? Je suis un peu confus. Est-ce que je manque quelque chose? Voyez-vous un problème avec NSOperation et NSLock ensemble? (Si non, alors je suis sûr que l'erreur est dans mon code)
Pouvez-vous poster plus de code? Plus de contexte? Aussi, est-ce sur Mac OS X ou iOS? –