インスタンスメソッド


cancel()


このタスクをキャンセルします。


iOS 13.0+ iPadOS 13.0+ Mac Catalyst 13.0+ macOS 10.15+

tvOS 13.0+ visionOS 1.0+ watchOS 6.0+

func cancel()

SuccessSendable に準拠し FailureError に準拠している場合利用可能です。





議論


タスクをキャンセルすると、主に以下の 3 つの効果があります。


  • タスクをキャンセル済みとしてフラグ付けします。

  • タスク上でアクティブな全てのキャンセルハンドラを 1 回実行します。

  • タスクの子タスクとタスクグループ(将来作成されるものも含む)をすべてキャンセルします。これらのタスクにキャンセルハンドラが設定されている場合は、それらも引き起こされます。

  • タスクのキャンセルは協調的かつ冪等です。


    タスクをキャンセルしても、そのタスク上の任意の関数が自動的に実行を停止したりエラーを throw したりするわけではありません。関数はキャンセルに反応して作業を早期に終了することがあり、その場合は呼び出し元に CancellationError を throw してその旨を通知するのが慣例です。ただし、キャンセルの有無を明確にチェックしない関数は、実行中のタスクがキャンセルされた場合でも、正常に完了するまで実行されます。ただし、その関数が、エラーを throw することでキャンセルを処理する他のコードを呼び出し、その関数がエラーを処理しない場合、その関数は早期に終了する可能性があります。


    どのタスクまたはスレッドからでも、タスクを安全にキャンセルできます。複数のタスクまたはスレッドから同時に同じタスクをキャンセルしても安全です。すでにキャンセルされたタスクをキャンセルしても、追加の効果はありません。


    cancel はロックを取得し、キャンセルされたタスクに関連した任意のキャンセルハンドラコードを同期的に実行する必要がある場合があります。デッドロックのリスクを軽減するため、呼び出し元は cancel を呼び出す前に、保持しているロックをすべて解放することをお勧めします。


    タスクがキャンセルのチェックを実行できる最後のポイントをすでに過ぎている場合は、タスクをキャンセルしても目立った効果はありません。


    以下も見よ
    Task.checkCancellation()


    以下も見よ
    withTaskCancellationHandler(operation:onCancel:isolation:)





    以下も見よ


    タスクのキャンセル


    struct CancellationError

    タスクがキャンセルされたことを示すエラー。


    var isCancelled: Bool

    タスクの実行を停止すべきかどうかを示すブール値。


    static var isCancelled: Bool

    タスクの実行を停止すべきかどうかを示すブール値。


    static func checkCancellation() throws

    タスクがキャンセルされた場合エラーを throw します。


    func withTaskCancellationHandler<T>(handler: () -> Void, operation: () async throws -> T) async rethrows -> T

      廃止  


    func withTaskCancellationHandler<T>(operation: () async throws -> T, onCancel: () -> Void, isolation: isolated (any Actor)?) async rethrows -> T

    現在のタスクがキャンセルされた場合に直ちに呼び出されるキャンセルハンドラを使用して操作を実行します。














    トップへ












    トップへ












    トップへ












    トップへ












    トップへ












    トップへ












    トップへ












    トップへ












    トップへ












    トップへ












    トップへ












    トップへ












    トップへ












    トップへ












    トップへ












    トップへ












    トップへ












    トップへ