[NSDocument _doCleanupOldVersions] _block_invoke阻塞主线程

时间:2014-05-15 09:33:22

标签: multithreading cocoa grand-central-dispatch nsdocument timemachine

我发现我的应用程序在主线程上等了很长时间,而堆栈如下:

semaphore_wait_trap ()
_dispatch_semaphore_wait_slow ()
GSSystemManagedStorageCopyAllGenerationsInfos ()
GSLibraryCopyAllGenerationsInfos ()
+[NSFileVersion(NSPrivate) _otherNonpurgeableVersionsOfItemAtURL:temporaryStorageIdentifier:] ()
__35-[NSDocument _doCleanupOldVersions]_block_invoke ()
__CFRUNLOOP_IS_CALLING_OUT_TO_A_BLOCK__ ()
__CFRunLoopDoBlocks ()
__CFRunLoopRun ()
CFRunLoopRunSpecific ()
RunCurrentEventLoopInMode ()
ReceiveNextEventCommon ()
_BlockUntilNextEventMatchingListInModeWithFilter ()
_DPSNextEvent ()
-[NSApplication nextEventMatchingMask:untilDate:inMode:dequeue:] ()
-[NSApplication run] ()
NSApplicationMain ()

其他线程似乎无所事事。

我有什么办法可以避免这种方法在主线程上等待吗?

0 个答案:

没有答案