コールバックの実行は単に新規スレッドを作成し実行させていますが、この部分はあとで標準ライブラリに近い形に整えます。式は絶妙なタイミングでコールバックが登録された場合にそれが実行されないという事態を防ぐためのものです。返し渡した値は設定しません。ここではパターンマッチから計算結果の設定までの間に他スレッドでコールバックを新規に追加する処理が走ると、そのコールバックが実行対象に入らなくなってしまう恐れがあると思います。リトライするという処理にしています。ほにゃららクラスを利用する場合によく利用するパターンです。二度結果が設定されることを防止するという点でもこのような処理にしておくほうが懸命かと思います。ように実装を与えます。介して次の計算に回すという感じです。計算完了時のコールバックを登録するためのメソッドになります。計算結果が得られているのならば渡された関数を別スレッドで実行するだけです。呼ばれたときに実行できるようにしておきます。定義がほぼ終わりました。理解するのには役に立つのではないでしょうか。いうことがそれぞれ別クラスで定義されます。このように責務を分離することでタスクの実行方法を柔軟にコントロールしやすくなります。使用するように修正します。渡されたタスクを実行します。使用したりといった実装が定義できます。使用していることになります。利用するように修正します。}これで一通り必要なものは揃いました。実際の使用例はこんな感じです。するのは本来良くない例ですが、ここでは動作の確認のために入れています。っぽいものを定義してみたので、これを使用してその実行の挙動を整理してみたいと思います。}}という処理の流れを詳細に追うこととします。名前を付けられるようにします。