如何从iPhone App中的主线程启动新线程

时间:2011-05-21 00:17:02

标签: iphone multithreading nsthread

我有一个用于移动购物的应用程序。我有一个“LocationModel”单例对象,它从pList获取地址列表,并将每个地址转换为“Location”对象。在位置对象中,我有一个“纬度”和“经度”变量。目前我有一个迭代遍历位置对象数组并使用每个位置对象内的地址ping google.api服务器的方法,然后使用NSXML解析器解析返回数据类型,并提取并分配给每个位置对象的坐标。

现在所有这一切都在主线程上完成,因此当应用程序启动好几秒钟时,GUI就会被锁定。我想在appdelegate的main方法中启动一个新线程来完成在后台获取坐标的工作。但我之前从未做过多线程,我查看了Apple并发编程指南和线程指南,看起来似乎势不可挡。有人可以指点一些易于理解的资源,或者有示例代码。

非常感谢

1 个答案:

答案 0 :(得分:1)

您可以查看this method。这在每个NSObject子类上都可用。这将在后台生成一个新线程并运行该方法。您可以在方法中放入与下载和处理相关的所有代码。需要记住的一点是,您无法从主线程以外的任何线程更新UI。因此,一旦您准备好更新UI​​,您应该使用performSelectorOnMainThread:withObject:waitUntilDone:来调用将更新UI的方法。

虽然这应该足够开始,但我建议你看一下GCD。

相关问题