您的位置:首页 > 大数据 > 人工智能

performSelectorOnMainThread线程的阻塞与非阻塞

2013-10-25 16:10 344 查看
在做项目中,要提高效率,就必须使用多线程。

其中有关界面ui的的操作都要放到主线程之中去, 其中我们在performSelectorOnMainThread中又可以设置其阻塞还是非阻塞的,即通过waitUntilDone:(BOOL)wait;
yes是阻塞,no为非阻塞,即是否等待函数的返回。

- (void)performSelectorOnMainThread:(SEL)aSelector withObject:(id)arg
waitUntilDone:(BOOL)wait;

NSAutoreleasePool *pool =[[NSAutoreleasePool alloc] init];
[self performSelectorOnMainThread:@selector(RefreshCellForLiveId:)
withObject:userinfo
waitUntilDone:YES];
[pool release];

该方法的作用是在主线程中,执行制定的方法(代码块)。
参数:
@selector(RefreshCellForLiveId:)就是,要定义我们要执行的方法。
withObject:userinfo
定义了,我们执行RefreshCellForLiveId:方法时,传入的参数对象。类型是id。(我们可以传入任何参数)
waitUntilDone:YES];
指定,当前线程是否要被阻塞,直到主线程将我们制定的代码块(RefreshCellForLiveId:方法)执行完。

注意:
1.当前线程为主线程的时候,waitUntilDone:YES参数无效。
2.该方法,没有返回值
3.该方法主要用来用主线程来修改页面UI的状态。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: