スポンサーリンク

【Swift】処理の後に処理を行う方法ご紹介。〜 DispatchQueue 〜

Swift
スポンサーリンク

今回の記事はSwift開発で遅い処理が完了してから処理を行う場合、必要な操作を「DispatchQueue」を使って実装してみます。興味があれば是非参考にしてみて下さい。

スポンサーリンク

処理の後に処理を行う方法ご紹介。〜 DispatchQueue 〜

DispatchQueue.global().async {
    print("処理1(時間のかかる処理)")
}
//print("前処理 :" + String(maesyoriflag))
// dataを取得するまで待ちます
wait( { return maesyoriflag == false } ) {
    // 取得しました
    //print("前処理 :" + String(maesyoriflag))
    DispatchQueue.main.asyncAfter(deadline:.now() + 2.0) {
        print("処理2")       
   }
}

//待機用の関数()
func wait(_ waitContinuation: @escaping (()->Bool), compleation: @escaping (()->Void)) {
    var wait = waitContinuation()
    // 0.01秒周期で待機条件をクリアするまで待ちます。
    let semaphore = DispatchSemaphore(value: 0)
    DispatchQueue.global().async {
        while wait {
            DispatchQueue.main.async {
                wait = waitContinuation()
                semaphore.signal()
            }
            semaphore.wait()
            Thread.sleep(forTimeInterval: 0.01)
        }
        // 待機条件をクリアしたので通過後の処理を行います。
        DispatchQueue.main.async {
            compleation()
        }
    }
}

今回の記事は以上です。他にも多数のSwift関連の記事を記載しているのでサイト内見ていって下さい。

本記事を読んでいただき感謝です。サイトを訪れていただいた方はプログラミング勉強中かと思いますのでプログラミング勉強のコツを合わせてご紹介。

スポンサーリンク
スポンサーリンク
スポンサーリンク

ブログに関しては500円程度かかりますが、それ以外は無料です。知識の吸収と並行してアウトプットは非常に効率が良いです。テックアカデミーに関しては講座レベルが高いにも関わらず、無料体験や人気口座も大幅値下げがあるので、重点的に学びたいものを無料体験してみてください。

転職時にも、エンジニアからテックアカデミー・Paizaは認知度が高いので、未経験入社採用を行う際履歴書で目に留まります。特にPaizaのスキルレベルA・SなどはIT業界でも評価されます。

テックアカデミー・Paizaの無料登録ができる期間中にぜひご利用してみてください。私も活用経験ありです。

Swift
スポンサーリンク
スポンサーリンク
ともぶろぐ

コメント

タイトルとURLをコピーしました