유무 문제가이 문제를 시각화했다 후 대기 시간 스위프트 4 : 이초과 비동기식 시리얼 큐 만들기 ... 각 작업
는 내가 2 개 스레드를 필요로하고이를 구현하는 방법을 잘 모르겠습니다 생각합니다.각 네트워크 검색 요청이 완료된 후 최소 2 초의 지연이 필요합니다.
메인 스레드 :
있는 UIButton을 누르면 -> 기능 직렬 큐에 네트워크 검색 요청을 추가 -> UILoop 계속 ...
네트워크 스레드 : 다음 요청
확인 큐 -> 요청 시작 -> 요청 완료 -> 2 초 대기 -> 다음 요청 대기열 확인 -> 요청 시작 -> 요청 완료 -> 2 초 대기 -> 다음 요청 대기열 확인 - > 요청 없음 -> 다음 요청에 대한 대기열을 확인합니다 ... 또는 호출 될 때까지 루프를 종료합니다.
var networkQueue = [NetworkRequest]()
var networkQueueActive = false
@IBAction func buttonPressed(_ sender: UIButton) {
networkQueue.append(NetworkRequest(UIButton))
if networkQueueActive == false {
networkRetrieveFromQueue() // need to asynchronously call this DON'T KNOW HOW TO DO THIS
}
}
func networkRetrieveFromQueue() {
networkQueueActive = true
while !networkQueue.isEmpty {
let request = networkQueue.remove(at: 0)
// synchronous network data retrieval on this thread KNOW HOW TO DO THIS
// do something with the data retrieved KNOW HOW TO DO THIS
// wait 2 seconds DON'T KNOW HOW TO DO THIS
}
networkQueueActive = false
}
[이전 질문]의 재 게시가 아닙니까? (https://stackoverflow.com/questions/47694633/swift-4-how-to-asynchronously-use-urlsessiondatatask-but-have-the-requests- - 내가)? – rmaddy
예. 나는 그것을 업데이트했다. 이것에 대해 갈 방법이 아닌가? – ANoobSwiftly