我的应用程序有5个模块,每个模块的数据都存储在5个不同的托管对象中。我创建了一个搜索页,用户可以在其中键入关键字来查找所有5个模块中的关键字。对于搜索栏中的每个文本更改,我刷新了搜索结果表,以显示匹配的记录计数和模块名称。
因此,对于搜索栏中的每一次按下,我需要从所有5个模块中获取匹配的数据计数。如果应用程序只有最少的记录量,这就很简单。但是,在我的例子中,总的记录计数太重了,所以通过键入的搜索词从5个模块获取数据所花费的时间太长了,这使得应用程序冻结。
我不知道如何在iOS中实现线程的概念,所以我试着通过阅读苹果的threading programming guide和concurrency programming guide来学习。我希望,我学到了一些关于线程的知识,但是当我尝试通过代码实现这些概念时,它就有点复杂了。
我的要求是,我有一些5个函数,应该调用线程的概念。考虑到函数是,
function1() {...}
function2() {...}
function3() {...}
function4() {...}
function5() {...}我想同时调用这5个函数,这样就没有人可以等待其他函数的完成。还有一点是,当上面的函数获取记录时,如果用户在搜索栏中键入/擦除文本,我希望取消/停止所有线程,并且我需要对这些函数执行另外5个新的调用。
我正在寻找建议,任何类型的工作样本代码,例子。任何帮助都将不胜感激。
谢谢
发布于 2012-11-30 03:10:00
有一篇关于核心数据和后台线程here的很好的帖子!有了整个GCD的东西,这就不再那么难完成了,所以这可能是进一步研究这个主题的一个很好的切入点。
here是关于这个话题的另一篇文章。
https://stackoverflow.com/questions/13632301
复制相似问题