0

我正在使用脚本桥从我的可可应用程序中查询 iTunes。有时 iTunes 会弹出一个窗口(例如,如果 ipod 需要更新等),当该弹出窗口打开时,我无法从 iTunes 获取任何信息。因此,如果我在处于这种状态时从 iTunes 请求信息,我的应用程序将完全锁定,直到该弹出窗口被关闭。

所以我需要某种机制,我可以在一个单独的线程中向 iTunes 询问一些简单的事情,看看我是否可以从它那里得到响应......如果那个单独的线程在短时间内没有收到响应,我的主要线程只会杀死该线程,因此知道在那个特定时间不查询 iTunes。

任何想法如何创建这样的机制?我搜索了杀死线程的方法,但没有找到任何方法。

4

2 回答 2

1

您的问题与线程无关;那是你的超时时间太长了。无论你在做什么,大约一分钟后都会失败。

要解决此问题,请向SBApplication 对象setTimeout:发送一条消息,传递您希望它等待的时间量。该值以滴答为单位,每秒恰好有 60 个。

(一些消息来源说 60.15,Apple 自己的文档说“大约”60,但我只测量了 10 分钟的值TickCount,除以 600 秒的结果正好是 60.0。我使用的代码:
NSLog(@"Ticks per second: %f", (end - start) / (60.0 * numMinutes));whereendstartare results from TickCount。 )

于 2010-02-25T13:13:54.527 回答
0

查看 NSOperation/NSOperationQueue。

于 2010-02-23T17:13:43.853 回答