我正在使用XMPPframework开发应用程序。当我下载用户的vCards(图片,名称等)时,应用程序会阻止,直到它下载了当时连接的所有人的数据。
我需要它在第二个线程中(我还没有使用过mutithreading),以便应用程序对新的触摸有所反应,并在下载数据时显示一个Activity图标。
我听说过Grand Central Dispatch(GCD),但我也听说过其他方式,你会推荐哪一种?
感谢。
答案 0 :(得分:1)
您可以使用类似的东西在第二个线程上工作。
dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{
/* your code to download the vCards goes here */
/* if you are explicitly updating a UI element then you would have to perform that on the main thread so you would do something like this */
dispatch_async(dispatch_get_main_queue(), ^{
label.text = @"some text"; // or any other code that updates a UI element
});
});
如果您要做的只是在第二个线程中下载vCard数据并将结果分配给变量,则不需要第二次调用dispatch_async(),因为您没有对UI元素执行任何操作。