我对某些东西感到厌烦,我想问你是否可以指出我正确的方向。
我要完成四项任务,一个接一个。
我已为此编写了所有代码并且执行正常。但是,有时它会因为某些代码在另一个代码完成之前执行而挣扎。
示例:
func startProcess () {
fetchHTMLFromWeb()
parseHTML()
saveToCalendar()
//Sometimes uploadToWeb() starts before saveToCalendar() is finished
uploadToWeb()
}
我曾尝试阅读GCD,但这是一个相当复杂的主题,我发现很难掌握它。
你能否就这个问题推荐任何好的阅读材料?
非常感谢!
答案 0 :(得分:1)
您可以使用GCD在后台队列中执行所有内容。
dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{
self.startProcess();
});
,startProcess将在后台队列/线程上启动。所以你可以
在fetchHtmlFromWeb
方法中,只需调用parseHtml()
,即可获取提取结果。
希望它有所帮助。