其實這也是無意間看到的,大家看看是不是這麼回事
BUG:當下載線程數超過2時,就會影響到主線程響應用戶請求的速度了
看ASIRequestHttp.m--requestFinished代碼
- (void)requestFinished
{
#if DEBUG_REQUEST_STATUS || DEBUG_THROTTLING
ASI_DEBUG_LOG(@"[STATUS] Request finished: %@",self);
#endif
if ([selferror] || [selfmainRequest]) {
return;
}
if ([selfisPACFileRequest]) {
[selfreportFinished];
}else {
[selfperformSelectorOnMainThread:@selector(reportFinished)withObject:nilwaitUntilDone:[NSThreadisMainThread]];
}
}
你會發現在不使用自動代理腳本時,就會在主線程執行reportFinished。
解決辦法:
一:繼承ASIRequestHttp重寫requestFinished方法;
二:懶人辦法,直接修改原來ASIRequestHttp方法;看如下代碼
- (void)requestFinished
{
#if DEBUG_REQUEST_STATUS || DEBUG_THROTTLING
NSLog(@"[STATUS] Request finished: %@",self);
#endif
if ([selferror] || [selfmainRequest]) {
return;
}
[selfreportFinished];
}
修改完發現至少5個下載線程時也不會影響主線程了,是不是很神奇。