Is there a clean way of joining threads in Objective C much like “Thread.join” in Java? I found the method performSelector:onThread:withObject:waitUntilDone: but the limitation of this is I can’t call the “blocking” on a different line because I want to do something like this:
[dispatch Thread A];
[process something on main thread];
[wait for Thread A to finish before proceeding];
Thank you in advance.
NSConditionLock is the answer to my question, Sorry Dave DeLong, but I cannot use:
“while ([otherThread isFinished] == NO) ”
— because I need fast continuous processing and cannot use sleep.
NSLock
— because as you said it “initiate the background task, which should immediately lock the lock and unlock when done”, this is not a solution because I tried it and we are not sure if the subthread will execute last before the lock-unlock-release on main thread, I ended up getting random errors.
Grand Central Dispatch
–because it’s only available in IOS4 and Snow Leopard 10.6, I’m using a lower version.
But your answer gave me the idea and thank you very much for it, so I just “upped” you.
I ended up doing this: