When opening UIDocuments from a closed state, I understand that it is it done on another thread. My question is, if I have code on my main thread that will access the document (
Instead of trying to block a thread, block your application's user from accessing the document until it is open. That's what the completion handler is for.
- (void)openWithCompletionHandler:(void (^)(BOOL success))completionHandler
When the completion handler is invoked simply dismiss whatever temporary user interface you display while the document is opening. This way no threads are blocked while the document is opening, and the application remains responsive (albeit useless).