Dispatch   >   DispatchQueue   >   sync(execute:)
インスタンスメソッド
sync(execute:)
ディスパッチキュー上で実行するブロックオブジェクトを送信し、ブロックが完了するまで待機します。
宣言
パラメータ
queue | その上にブロックを送信するキュー。このパラメータは NULL にすることはできません。 |
block | ターゲットディスパッチキュー上で呼び出されるブロック。このパラメータは NULL にすることはできません。 |
議論
同期実行のためにブロックをディスパッチキューに送信します。dispatch_async(_:_:) と異なり、この関数はブロックが終了するまで返りません。この関数を呼び出して現在のキューをターゲットとすると、デッドロックが発生します。
dispatch_async(_:_:) とは異なり、ターゲットキュー上では保持は実行されません。この関数への呼び出しは同期式なので、これは呼び出し元の参照を"借用" します。さらに、Block_copy はブロックに対して実行されません。
最適化として、この関数は可能であれば現在のスレッド上のブロックを呼び出します。