Ограничить фоновые потоки до пяти каждый раз - PullRequest
0 голосов
/ 17 апреля 2019

Я хочу ограничить фоновый поток менее чем пятью каждый раз.Я должен вызывать API загрузки файлов одновременно, когда выбираю несколько файлов из галереи.Я должен вызывать один и тот же API несколько раз, т.е. если я выбрал 4 изображения, я должен вызывать один и тот же API четыре раза одновременно в фоновом потоке.Если число изображений больше 5, тогда мне нужно выбрать первые пять изображений и сделать пять запросов API, если любой из пяти запросов даст ответ, затем выберите еще одно изображение и добавьте его в фоновый поток.

То же самоеПроцесс должен выполняться до тех пор, пока все 20 запросов API изображений не дадут ответ.Я использую Alamofire для многоэтапной загрузки и шаблона проектирования MVVM.

Alamofire.upload(multipartFormData: { (multipartFormData) in
if imagepresent{
    for i in 0..<imgparameters.count {
        do {
            let documentData = try Data(contentsOf: imgparameters[i]["fileUrl"] as! URL, options: .dataReadingMapped)

            multipartFormData.append(documentData, withName: "attachments", fileName: "\(imgparameters[i]["fileName"] ?? "\(datestr)\(i).jpg")", mimeType: "\(imgparameters[i]["type"] ?? "image/jpg")")

        } catch let error {
            print(error.localizedDescription)
        }
    }
}
for (key, value) in parameters {
    multipartFormData.append((value as AnyObject).data(using: String.Encoding.utf8.rawValue)!, withName: key)
}}, to:requestURL,method : methodType,headers : headerss)

{ (result) in

switch result {

case .success(let upload, _, let streamFileURL):

    self.uploadRequest = upload

    upload.uploadProgress(closure: { (Progress) in

    })
    upload.responseJSON { response in

        self.uploadRequest = nil

        if (response.error == nil)

        {
            self.saveCookies(response: response)
        }

        self.handleResponse(response: response, completionBlockX: completionBlock
    }
case .failure(let encodingError):
    print(encodingError)
 }
}

Спасибо за быстрые ответы.

...