func resume()
func resume(returning: T)
func resume(returning: T)
func resume(throwing: E)
func resume(with: Result<T, E>)
func resume<Er>(with: Result<T, Er>)
Availability
Technology
@frozen struct UnsafeContinuation<T, E> where E : Error
A continuation is an opaque representation of program state. To create a continuation in asynchronous code, call the with
or with
function. To resume the asynchronous task, call the resume(returning:)
, resume(throwing:)
, resume(with:)
, or resume()
method.
ある継続は、プログラム状態の不透明表現です。ある継続を非同期コードにおいて作成するには、with
またはwith
関数を呼び出してください。非同期タスクを再開するには、resume(returning:)
、resume(throwing:)
、resume(with:)
、またはresume()
メソッドを呼び出してください。
Important 重要
You must call a resume method exactly once on every execution path throughout the program. Resuming from a continuation more than once is undefined behavior. Never resuming leaves the task in a suspended state indefinitely, and leaks any associated resources. あなたは、ある再開メソッドをあらゆる遂行経路上でそのプログラムの間を通して厳密に一度だけ呼び出さなければなりません。ある継続から一回以上再開することは、未定義挙動です。再開することは、そのタスクを決して曖昧に中断状態のままにしておきません、そしていかなる関連したリソースも漏洩しません。
Checked
performs runtime checks for missing or multiple resume operations. Unsafe
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.
Checked
は、見つからないまたは複数の再開操作に対する実行時検査を実行します。Unsafe
は、それら不変式を実行時に遵守させることを避けます、なぜならそれはイベントループを備えるSwiftタスク、委任メソッド、コールバック、そして他の非async
スケジューリング機構を取り持つことに対して低オーバーヘッド機構であるように努力するからです。しかしながら、開発の間は、試験することで不変式それらが支持されていることを検証できることは重要です。両方の型は同じインターフェイスを持つため、あなたは多くの状況で一方を他方で置き換えることが、他の変更をすることなく可能です。
func resume()
func resume(returning: T)
func resume(returning: T)
func resume(throwing: E)
func resume(with: Result<T, E>)
func resume<Er>(with: Result<T, Er>)
struct CheckedContinuation
func withCheckedContinuation <T>(function: String, (CheckedContinuation<T, Never>) -> Void) -> T
func withCheckedThrowingContinuation <T>(function: String, (CheckedContinuation<T, Error>) -> Void) -> T
func withUnsafeContinuation <T>((UnsafeContinuation<T, Never>) -> Void) -> T
func withUnsafeThrowingContinuation <T>((UnsafeContinuation<T, Error>) -> Void) -> T