Ich habe eine Schleife, die mit einem
beginnt %Vor%weil ich im Körper der Schleife einen anderen Thread erstelle, der beendet werden muss, bevor die Schleife wieder läuft. (Der andere Thread wird es nach dem Beenden entsperren).
Aber in der zweiten Schleife bekomme ich den folgenden Fehler:
%Vor%In der Dokumentation zu "Sperren" steht Folgendes:
Zusammenfassung: Versucht, eine Sperre zu erhalten, die Ausführung eines Threads blockiert, bis die Sperre erworben werden kann. (erforderlich)
was bringt mich dazu zu denken, dass es nur blockieren würde, bis das Schloss erworben werden könnte?
Klingt nach zwei Problemen:
NSCondition
. Warten Sie auf das NSCondition
im übergeordneten Thread und signalisieren Sie es im untergeordneten Thread. NSLock
kann nicht gesperrt werden, solange er bereits gesperrt ist. Dafür steht NSRecursiveLock
. Haben Sie daran gedacht, -unlock
zu senden, als Sie fertig waren? Jeder Aufruf von -lock
muss mit einem Aufruf von -unlock
gepaart werden.