`
jguangyou
  • 浏览: 375717 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

performSelectorOnMainThread

    博客分类:
  • iOS
 
阅读更多

iphone开发中,在主线程之外的线程更新主线程所显示的界面元素,不能直接调用主线程的类的更新界面的方法,否则界面看不到任何结果

.而是需要有个缓冲,叫做

performSelectorOnMainThread

使用方法是,在线程调用到更新界面那个类的时候,在更新界面前,通过如下调用.

[self performSelectorOnMainThread:@selector(updateLabel:) withObject:updateData waitUntilDone:YES];

 

比如说你已经定义了一个- (void)updateLabel:(NSString *)txt{}的方法.在此方法中更新界面即可.即时看到结果. 

 

分享到:
评论

相关推荐

    OC-performSelectorOnMainThread

    `performSelectorOnMainThread:` 是一个非常关键的OC方法,用于在主线程上执行某个指定的方法。这个方法主要用于解决多线程编程中的问题,确保在用户界面更新时的操作是安全和同步的。以下将详细讲解`...

    第十一节 多线程的使用与注意事项.docx

    在该方法中,为了安全更新UI,我们需要使用`performSelectorOnMainThread:withObject:waitUntilDone:`方法: ```objc - (void)threadExecution:(id)sender { // 耗时操作... // 更新UI [self ...

    swift异步下载网络图片

    或者,如果使用了`detachNewThreadSelector`,则可以将UI更新操作作为目标方法的一部分,使用`self.performSelectorOnMainThread`。 现在,让我们讨论一下“一步下载”的概念。在某些情况下,可能需要一次性下载多...

    swift NSThread线程同步买票小例子

    3. **线程间通信(Thread Intercommunication)**:NSThread还提供了诸如`performSelectorOnMainThread:`方法,用于在线程之间传递消息并执行指定的方法。在我们的例子中,如果需要在主线程更新UI,可以使用这个方法...

    IOS两个精典的关于多线程的例子代码

    另外,`performSelectorOnMainThread:withObject:waitUntilDone:`可以确保在主线程上执行特定的操作。 ```objc @synchronized(self) { // 互斥访问共享资源 } [self performSelectorOnMainThread:@selector...

    iOS高级经典面试-f.pdf

    线程间通信可以通过`performSelectorOnMainThread:`等方法实现。 这些知识点在iOS面试中至关重要,因为它们涉及到应用程序的性能、稳定性以及内存效率。理解并熟练掌握这些概念将有助于开发者编写出更高效、健壮的...

    OC-NSOperation异步线程下载图片

    可以使用`dispatch_async`或者`performSelectorOnMainThread`来确保在主线程上操作。 通过以上步骤,我们可以利用`OC-NSOperation`构建一个高效的异步图片下载机制,同时保持良好的用户体验和系统资源管理。这个...

    Objective-C高级编程 iOS与OS X多线程和内存管理

    `performSelectorOnMainThread:`和`dispatch_async`到主线程队列等方法可以帮助我们正确地在主线程上执行UI更新操作。 最后,了解并实践内存管理和多线程的最佳实践,可以提高应用的性能和稳定性,降低资源消耗,...

    IOS部分面试题

    - 主线程执行:`[someMethod performSelectorOnMainThread:@selector(someMethod) withObject:nil waitUntilDone:YES/NO];` - 延时执行:可以使用`performSelector:withObject:afterDelay:`或者GCD的`dispatch_after...

    OC-performSelectorInBackground

    - `performSelectorOnMainThread:withObject:waitUntilDone:` - 在主线程执行 selector,可选择等待直至完成。 - `performSelector:withObject:afterDelay:` - 延迟一段时间后执行 selector。 - `performSelector:...

    Object-C的语法与Cocoa框架V1.0.pdf

    Objective-C提供了`performSelectorOnMainThread:`方法,允许你在新线程中安全地调用主线程的方法。这样可以确保UI操作在主线程上执行,避免出现线程安全问题。 线程池的概念在Objective-C中通过`NSOperation`和`...

    多线程_IOS应用源码.zip

    此外,源码可能还涵盖了如何在主线程和后台线程之间切换,以更新UI(如使用`DispatchQueue.main.async`或`performSelectorOnMainThread`),因为所有的UI操作都必须在主线程上进行。 总之,"多线程_IOS应用源码.zip...

    多线程技术在iOS开发中的使用.doc

    1. **NSObject的多线程方法**:`performSelectorInBackground:`可以在后台线程执行方法,`performSelectorOnMainThread:`则用来在主线程执行任务,确保UI更新的安全。`NSThread`类提供了获取当前线程、线程休眠等...

    iOS开发学习之iOS多线程和RunLoop.pdf

    通过NSThread,我们还可以在主线程上执行一个选择器,即`performSelectorOnMainThread:withObject:waitUntilDone:modes:`。 接下来,POSIX线程(也称为pthread)是另一种多线程的实现方式,它是POSIX标准的一部分,...

    iOS多线程编程指南(一)关于多线程编程 - 51CTO.COM1

    因此,当在后台线程执行耗时操作时,应使用`dispatch_async`或`performSelectorOnMainThread`确保结果在主线程上更新UI。 4. **线程安全** 在多线程环境中,多个线程可能会同时访问同一数据,导致数据不一致。为...

    Ios子线程渲染Opengl demo

    可以使用`performSelectorOnMainThread:withObject:waitUntilDone:`或者`dispatch_async`到主线程进行这一操作。 5. **内存管理和性能优化**:在多线程环境中,需要特别注意内存管理,确保对象的生命周期在正确的...

    iOS多线程Demo

    在“iOS多线程Demo”中,可能会包含如何在后台线程完成耗时操作后,在主线程更新UI的方法,如使用`dispatch_async`向主线程发送任务,或者使用`performSelectorOnMainThread`。 此外,多线程还会涉及线程安全问题,...

    ios-分贝.zip

    可以使用`dispatch_async`或`performSelectorOnMainThread`将UI更新操作放入主线程执行。 8. **GitHub资源**: 该项目位于GitHub(https://github.com/Benight/DecibelDemo),提供了源代码和进一步的阅读材料。...

    tableview扩展

    因此,数据的加载通常在后台线程进行,加载完成后,使用`dispatch_async`或`performSelectorOnMainThread:`将新数据更新到表格视图中,确保界面更新的流畅性。 4. **异步加载与数据缓存**:为了提高性能,通常我们...

    cocos2d-x多线程

    5. **异步任务**:Cocos2d-x提供了异步任务处理的接口,如`Director::performWithDelay`和`Director::performSelectorOnMainThread`,它们可以在主线程或指定线程上执行函数,确保UI操作的正确性。 6. **事件循环...

Global site tag (gtag.js) - Google Analytics