使用 NSOperationQueue(或ASINetWorkQueue,见下面示例)将给你对异步request更多的控制。当使用队列的时候,只有确定 数量的request可以同时运行。如果你添加的request超过了队列的maxConcurrentOperationCount属性,request将在其他request运行完了之后运行。
注:ASINetworkQueue 类查看前面的IPhone之ASIHTTPRequest简介
//异步获取图片
ASINetworkQueue queue = [[ASINetworkQueue alloc] init];
for (ForumItem *item in itemList) { //item.Image 图片的地址 if (item.Image) { ASIHTTPRequest *request = [ASIHTTPRequest requestWithURL:[NSURL URLWithString:item.Image]]; request.userInfo = [NSDictionary dictionaryWithObject:item.Image forKey:@"Image"]; [request setDelegate:self]; [request setDidFinishSelector:@selector(requestDidFinished:)];
[queue addOperation:request]; } }
[queue go]; 最后记的释放 queue |