Generic Structure

CheckedContinuation

A mechanism to interface between synchronous and asynchronous code, logging correctness violations. 同期と非同期のコードの間を取り持つためのある仕組み、それは正確さ侵害を記録します。

Declaration 宣言

struct CheckedContinuation<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(function:_:) or withUnsafeThrowingContinuation(function:_:) function. To resume the asynchronous task, call the resume(returning:), resume(throwing:), resume(with:), or resume() method. ある継続は、プログラム状態の不透明表現です。ある継続を非同期コードにおいて作成するには、withUnsafeContinuation(function:_:)またはwithUnsafeThrowingContinuation(function:_:)関数を呼び出してください。非同期タスクを再開するには、resume(returning:)resume(throwing:)resume(with:)、またはresume()メソッドを呼び出してください。

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. CheckedContinuation logs a message if either of these invariants is violated. ある継続から一回以上再開することは、未定義挙動です。再開することは、そのタスクを決して曖昧に中断状態のままにしておきません、そしていかなる関連したリソースも漏洩しません。CheckedContinuationは、これら不変式のどれかが侵害されるならばメッセージを記録します。

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 話題

Initializers イニシャライザ

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

See Also 参照

Continuations さまざまな継続