【Swift】処理を停止させる方法!Thread.sleep

この記事からわかること

  • Swift処理停止させる方法
  • Thread.sleepメソッド使い方

index

[open]

\ アプリをリリースしました /

みんなの誕生日

友達や家族の誕生日をメモ!通知も届く-みんなの誕生日-

posted withアプリーチ

環境

Swiftで処理を停止させる方法

Swiftで処理を一時的に停止させたい場合や時間を稼ぎたい場合は以下の3つの方法を使用することで処理を停止させることができます。

Thread.sleepの使い方

公式リファレンス:sleep(forTimeInterval:)メソッド

Threadクラスの持つsleep指定した秒数だけスレッドを一時停止させるメソッドです。引数forTimeIntervalTimeInterval型(Double型のタイプエイリアス)で秒数を渡します。

Thread.sleep(forTimeInterval: 3.0) // 3秒間の一時停止

呼び出しているスレッドを一時停止させるものなのでマルチスレッドで処理を実行している場合は呼び出していないスレッドは動作し続けます。

let thread1 = Thread {
    for i in 1...5 {
        print("Thread 1: \(i)")
        Thread.sleep(forTimeInterval: 1)
    }
}

let thread2 = Thread {
    for i in 1...5 {
        print("Thread 2: \(i)")
        Thread.sleep(forTimeInterval: 0.5)
    }
}

thread1.start()
thread2.start()

// メインスレッドがここで一時停止(3秒間)
Thread.sleep(forTimeInterval: 3.0)

print("End of the program after sleep")

sleepメソッドの使い方

単にsleepメソッドも定義されています。こちらの場合は引数にInt32型で秒数を指定します。


public func sleep(_: UInt32) -> UInt32
sleep(3) // 3秒間の一時停止

DispatchQueueの使い方

DispatchQueueを使用して遅延処理を実装することも可能です。

DispatchQueue.main.asyncAfter( deadline: DispatchTime.now() + 3) {
  // 非同期で3秒後に実行される  
}

詳細は以下の記事を参考にしてください。

ご覧いただきありがとうございました。

searchbox

スポンサー

ProFile

ame

趣味:読書,プログラミング学習,サイト制作,ブログ

IT嫌いを克服するためにITパスを取得しようと勉強してからサイト制作が趣味に変わりました笑
今はCMSを使わずこのサイトを完全自作でサイト運営中〜

New Article

index