Вопрос

Как я понял, потоки, предоставленные GCD, имеют undloop, но нет источника / порта. Сейчас я использую некоторые из методов, которые называют AppleCripts через AppleEvents внутри NSOPERURICUEUE. И иногда мое приложение вылетает со следующей Stacktrace.

мои вопросы:

  • Использование AppleScript внутри NsinvocationOperation или NSBlockopation
  • Использование Apple Events внутри GCD-потоков
  • Должен ли я добавить источник / порт на rundoop GCD-потока перед использованием AppleEvents?
  • Должен ли я добавить источник / порт в rundoop GCD-потока перед использованием [CATRANCANCE COMPANCE]?
  • Должен ли я добавить источник / порт в rundoop of the gcd-нити перед использованием [nsobject performeselectorafterdeLay ...]?
  • Если да, как?
  • Могу ли я просто позвонить 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_block 469 2 com.apple.applescript 0x000000011d3d461f applescriptscript 0x000000011D3edbcc AgenericCall :: Делегат (ComponentInstanceReCord *) 46 4 com.apple.applescript 0x000000011d3ed520 agenericmanager :: handomosacall (компоненты параметры *) 54 5 com.apple.applescript 0x000000011d3ed4b0 genericcomponent 219 6 com.apple.Openscripting 0x00007fff8381c6da osaexecuteevent 63 7 com.apple. 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 main] 140 15 com.apple.Foundation 0x00007fff86ec906d - [__NSOperationInternal start] 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 0x0000000-11 () 2546 2 com.apsexecute1 () 2546 2 com.apple.applescript 0x000000011d3DDD1D5 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 0x000000000011d3edbccercord ageniccall :: делегат (componentInstanceReCord *) 46 6 com.apple.applescript 0x000000011d3ed520 agenericmanager ::HandleOSACall(ComponentParameters*) 54 7 com.apple.applescript 0x000000011d3ed4b0 GenericComponent 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 bringZFToForegroundZoom OUT: ORJUSTLINKFRONT: TOITEM:] 60 15 XXX 0x0000000100053556 __- [ZFSELECEICETOOL OpenWithPrefreferredApplication:] _ block_invoke_516 54 16 com.apple.foundation 0x00007fff86ed87d9 - [Nsblockoperation Main] 140 17 com.apple.foundation 0x00007fff86Ec906d - [__ nsoperation start] 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
Это было полезно?

Решение

Обратите внимание, что компонент AppleScript имеет ограниченную безопасность потоков. По состоянию на 10,6 вы можете использовать его на не основных потоках, но вам нужно будет создать новое представление для каждого потока. Я думаю, что вы можете сделать это с Осакитом, в противном случае вам нужно прибегать к Grarly Carbon API. Что лучше всего, зависит от того, что вы пытаетесь достичь (например, вы используете прилагаемые пользователем скрипты или скрипты, заканчиваемые в вашем приложении, и какова мотивация для их выполнения через NSOPERURICEUE).

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top