私が理解しているように、GCD によって提供されるスレッドには実行ループがありますが、ソース/ポートはありません。現在、NSOperationQueue 内で AppleEvents を介して AppleScripts を呼び出すいくつかのメソッドを使用しています。また、次のスタックトレースでアプリがクラッシュすることがあります。
私の質問:
- NSInvocationOperation または NSBlockOperation 内での AppleScript の使用
- GCD-Threads 内での AppleEvents の使用
- AppleEvents を使用する前に、gcd スレッドの実行ループにソース/ポートを追加する必要がありますか?
- [CATransaction commit] を使用する前に、gcd スレッドの実行ループにソース/ポートを追加する必要がありますか?
- [NSObject performSelectorAfterDelay...] を使用する前に、ソース/ポートを gcd スレッドの実行ループに追加する必要がありますか?
- はいの場合、どのように?
- 私は単純に CFRunLoopRunInMode(kCFRunLoopDefaultMode, 5.0, false); を呼び出すことができますか? /// または 30 または appleevent の定義されたタイムアウト?
.. スレッド 9: ディスパッチ キュー: com.apple.root.default-priority 0 libSystem.B.dylib 0x00007fff88276e82 semaphore_wait_signal_trap 10 1 libSystem.B.dylib 0x00007fff8827c3cd pthread_mutex_lock 469 2 com.apple.applescript 0x000000011d3d461f AppleScriptComponent 50 3 com.apple.applescript 0x000000011d3edbcc AGenericCall::Delegate(ComponentInstanceRecord*) 46 4 com.apple.applescript 0x000000011d3ed520 AGenericManager::HandleOSACall(ComponentParameters*) 54 5 com.apple.applescript 0x000000011d3ed4b0 汎用コンポーネント 219 6 com.apple.openscripting 0x00007fff8381c6da OSAExecuteEvent 63 7 com.apple.Foundation 0x00007fff86f320d8 -[NSAppleScript(NSPrivate) _executeAppleEvent:withMode:error:] 161 8 xxx 0x0000000100048af0 -[TCallScript callScript:withArrayOfParameters:] 480 9 xxx 0x0000000100048ffd -[TCallScript callHandler:withParameters:] 477 10 xxx 0x0000000100036032 -[ZFOpenWindowController getSafariItemForCurrentTabForWindow:] 66 11 xxx 0x00000001000346af -[ZFOpenWindowController refreshWindowList:] 1679 12 xxx 0x000000010003541c -[ZFOpenWindowController BringZFToForegroundZoomOut:orJustLinkFrontMost:toItem:] 2988 13 xxx 0x0000000100053556 __-[ZFSelectionTool openWithPreferredApplication:]_block_invoke_516 54 14 com.apple.Foundation 0x00007fff86ed87d9 - [NSBlockOperation メイン] 140 15 com.apple.Foundation 0x00007fff86ec906d -[__NSOperationInternal 開始] 681 16 com.apple.Foundation 0x00007fff86ec8d23 ____startOperations_block_invoke_2 99 17 libSystem.B.dylib 0x00007fff882b2ce8 _dispatch_call_block_and_release 15 18 libSystem.B.dylib 0x00007fff88291279 _dispatch_worker_thread2 231 19 libSystem.B.dylib 0x00007fff88290bb8_pthread_wqthread 353 20 libSystem.B.dylib 0x00007fff88290a55 start_wqthread 13 ... スレッド 11 がクラッシュしました: ディスパッチ キュー: com.apple.root.default-priority 0 com.apple.applescript 0x000000011d40f658 BCHandleError() 182 1 com.apple.applescript 0x000000011d4059ca UASExecute1() 2546 2 com.apple.applescript 0x000000011d3dd1d5 ASExecuteEvent(AEDesc const*, unsigned int, int, unsigned int*) 695 3 ...ple.CoreServices.CarbonCore 0x00007fff85388e04 CallComponentFunction 28 4 com.apple.applescript 0x000000011d3d4cad AppleScriptComponent 1728 5 com.apple.applescript 0x000000011d3edbcc AGenericCall::Delegate(ComponentInstanceRecord*) 46 6 com.apple.applescript 0x000000011d3ed520 AGenericManager::HandleOSACall(ComponentParameters*) 54 7 com.apple.applescript 0x000000011d3ed4b0 汎用コンポーネント 219 8 com.apple.openscripting 0x00007fff8381c6da OSAExecuteEvent 63 9 com.apple.Foundation 0x00007fff86f320d8 -[NSAppleScript(NSPrivate) _executeAppleEvent:withMode:error:] 161 10 xxx 0x0000000100048af0 -[TCallScript callScript:withArrayOfParameters:] 480 11 xxx 0x0000000100048ffd -[TCallScript callHandler:withParameters:] 477 12 xxx 0x0000000100035c67 -[ZFOpenWindowController getItemForAXDocumentOfFrontMostWindow] 119 13 xxx 0x00000001000359f1 -[ZFOpenWindowController getItemForFrontMostWindow:] 721 14 xxx 0x00000001000348ac -[ZFOpenWindowController BringZFToForegroundZoomOut:orJustLinkFrontMost:toItem:] 60 15 xxx 0x0000000100053556 __-[ZFSelectionTool openWithPreferredApplication:]_block_invoke_516 54 16 com.apple.Foundation 0x00007fff86ed87d9 - [NSBlockOperation メイン] 140 17 com.apple.Foundation 0x00007fff86ec906d -[__NSOperationInternal 開始] 681 18 com.apple.Foundation 0x00007fff86ec8d23 ____startOperations_block_invoke_2 99 19 libSystem.B.dylib 0x00007fff882b2ce8 _dispatch_call_block_and_release 15 20 libSystem.B.dylib 0x00007fff88291279 _dispatch_worker_thread2 231 21 libSystem.B.dylib 0x00007fff88290bb8_pthread_wqthread 353 22 libSystem.B.dylib 0x00007fff88290a55 start_wqthread 13