如何从NSOperationQueue获取控制权

时间:2010-10-11 13:36:27

标签: iphone

你能告诉我如何从NSOperationQueue

获得控制权

以下是我之前提出的真实问题:

嗨朋友们,我制作了一个应用程序,点击艺术家的形象播放歌曲。(见附图)。每个艺术家图像都是在按钮上实现的,点击此按钮时,会调用一个首先下载然后播放该歌曲的功能。我在一个线程中传递了这个方法(函数),但问题是每次当我点击artist(按钮)的图像时,新线程开始运行,然后多个歌曲同时开始播放。如何使用“NSOperation和NSOperationQueue”以便一次只能运行一首歌曲。请帮忙。

alt text 提前致谢

现在我可以通过将它们添加到队列中来播放歌曲但是当歌曲开始播放时我无法在我的屏幕上执行任何操作,直到歌曲结束或我滚动表格。

1 个答案:

答案 0 :(得分:0)

让主线程只排队一条消息。让线程执行操作(播放歌曲)将消息发送回主线程,指示何时完成。在主线程收回此消息(有状态)之前,不要在主线程中排队任何新操作。

如果使用主线程方法上的执行选择器将消息发送回主线程,您的主线程将获得控制权。