0
は、join
EDになることができactor
戻りActorJob
:0.20で俳優がkotlinx.coroutines 0.20で停止するまで最善の方法を教えてください。 kotlinx.coroutines 0.19で
val myActor = actor<...> { ... }
...
myActor.join()
は、SendChannel
を返すように変更されます。実装を見てみると、それはまだJob
を拡張するクラスのインスタンスを返すんので、私は
...
(myActor as Job).join()
を書くことができるが、これは明らかにコードのにおいです。よりよい選択肢がありますか?
アクターに参加するためのユースケースは何ですか?アクターに終了メッセージを送るべき特別なメッセージを送信し、そのメッセージが処理されるまで待つか、そのアクターをキャンセルして強制的に作業を中止し、すべてのリソースを閉じるまで待つことを望みますか? ?待つ根本的な理由は何ですか?あなたは何を達成しようとしていますか? –
最初のメッセージ(単一のメッセージではありませんが、アクターのロジックは特定の数のメッセージを処理し、リソースを停止して閉じます)。 –
もちろん、この場合は、アクターが「Channel」または「CompletableDeferred」を使用してシグナルを送信するように変更するオプションがあります。 –