Generic Structure

UnsafeContinuation

A mechanism to interface between synchronous and asynchronous code, without correctness checking. 同期と非同期のコードの間を取り持つための仕組み、正確さ検査なしで。

Declaration 宣言

@frozen struct UnsafeContinuation<T, E> where E : Error

Overview 概要

A continuation is an opaque representation of program state. To create a continuation in asynchronous code, call the withUnsafeContinuation(_:) or withUnsafeThrowingContinuation(_:) function. To resume the asynchronous task, call the resume(returning:), resume(throwing:), resume(with:), or resume() method. ある継続は、プログラム状態の不透明表現です。ある継続を非同期コードにおいて作成するには、withUnsafeContinuation(_:)またはwithUnsafeThrowingContinuation(_:)関数を呼び出してください。非同期タスクを再開するには、resume(returning:)resume(throwing:)resume(with:)、またはresume()メソッドを呼び出してください。

CheckedContinuation performs runtime checks for missing or multiple resume operations. UnsafeContinuation avoids enforcing these invariants at runtime because it aims to be a low-overhead mechanism for interfacing Swift tasks with event loops, delegate methods, callbacks, and other non-async scheduling mechanisms. However, during development, the ability to verify that the invariants are being upheld in testing is important. Because both types have the same interface, you can replace one with the other in most circumstances, without making other changes. CheckedContinuationは、見つからないまたは複数の再開操作に対する実行時検査を実行します。UnsafeContinuationは、それら不変式を実行時に遵守させることを避けます、なぜならそれはイベントループを備えるSwiftタスク、委任メソッド、コールバック、そして他の非asyncスケジューリング機構を取り持つことに対して低オーバーヘッド機構であるように努力するからです。しかしながら、開発の間は、試験することで不変式それらが支持されていることを検証できることは重要です。両方の型は同じインターフェイスを持つため、あなたは多くの状況で一方を他方で置き換えることが、他の変更をすることなく可能です。

Topics 話題

Instance Methods インスタンスメソッド

See Also 参照

Continuations さまざまな継続