                     if let image = image, let url = url {
                         let imageInfo = CKImageInformation(url: url, size: image.size, orientation: image.imageOrientation)
                         let index = self.imageUrls.index(of: url)
-                        self.imageInformationDic[index!] = imageInfo
+                        tmpImageInformationDic[index!] = imageInfo
                         loadedCount += 1
                     }
                     
                     if loadedCount == count {
-                        self.calculateSize()
+                        self.calculateSize(imageInformDic: tmpImageInformationDic)
                     }
                     else {
                         self.retryTimes += 1

            else {
                let imageInfo = CKImageInformation(url: url, size: backendSize, orientation: .up)
                let index = self.imageUrls.index(of: url)
                self.imageInformationDic[index!] = imageInfo
                loadedCount += 1
                
                if loadedCount == count {
                    self.calculateSize()
                }
            }
        }

        
        let count = urls.count
        var loadedCount :Int = 0
        var tmpImageInformationDic = [Int : CKImageInformation]()
        for url in urls {
            let backendSize = self.sizeByURLBlock!(url)
            if  backendSize == CGSize.zero {
