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主线程照样跑得很欢。