ASIHTTPRequest是iOS平台不错的http开源库,关于它的介绍随便google一下一堆。
据说 使用ASIHTTPRequest,当同时请求数超过2时,就会跑到主线程去执行,从而影响用户UI操作。
如下是ASIHttpRequest的代码所在地:
- (void)requestFinished
{
#if DEBUG_REQUEST_STATUS || DEBUG_THROTTLING
NSLog(@"[STATUS] Request finished: %@",self);
#endif
if ([self error] || [self mainRequest]) {
return;
}
if ([selfisPACFileRequest]) {
[selfreportFinished];
} else {
[self performSelectorOnMainThread:@selector(reportFinished) withObject:nilwaitUntilDone:[NSThreadisMainThread]];
}
}最简单是,直接改为:
[self reportFinished];
不再判断 isPACFileRequest. 在多个线程的请求数情况下,UI主线程照样跑得很欢。
本文探讨了ASIHTTPRequest在并发请求超过两个时如何影响UI操作,并提出了一种简单有效的解决方法,即取消对主线程的依赖判断,确保在多线程环境下UI仍能流畅运行。
491

被折叠的 条评论
为什么被折叠?



