表示されるようになります。値には影響がないわけです。以下のように独自のスレッドプールっぽいものを実装すると、より分かりやすくなるでしょう。合わせてエンキューする。フローさせるべきところです。デリゲートを呼び出すときにそのキャプチャしたコンテキストをリストアして使っています。メソッドを使用しています。キャプチャしなくなります。接頭辞を持たないメソッドは全く同じ動作をします。キャプチャしませんが、それ以外の動作は同じです。お話はここまでにしましょう。されている、というお話をしていました。メソッドは何故重要か?というお話でした。避けて通れないので解説をしていたわけです。するだけ、と言いました。本当はもうちょっといろいろあるが、実質的にはこれだけ。~~}上記のものは非常に簡素化したものであり、実際には以下のような形になっています。実行前の状態に戻すという処理を行っています。リークを防ぐためです。具体例を見ていきましょう。現在のユーザーに関する情報を、他の誰かの情報に変更することです。これによりコードは現在のユーザではない、他の誰かとして行動し、そのアクセス権を使用することができます。格納される事を意味します。復元しなかった場合の事を想像してみてください。したタイミングでサスペンドが発生し、メソッドの呼び出し元に同期的に返ってきます。読み込めてしまいます。復元するような防衛を行っています。メソッドが呼び出されます。文等)が加えられているメソッドです。このメソッドの基本的なところから見てみましょう。メソッドをコンパイルしたものを逆コンパイルし、どのようなコードが生成されているか見て生きましょう。ブロックをすべて省略したものです。状態)させるという責務を負っています。オブジェクトはその例外によって失敗させられる事になります。オブジェクトは正常に完了します。メソッドの成功/失敗に関わらず、完了状態になるよう設定しているのです。メソッドを経由している事に注意してください。オブジェクトを作成しているはずです。オブジェクトを作成する方法についてより柔軟性を持っています。避けたりする事ができます。オブジェクトを適切な状態にする責務も担っています。3つの状態があります。してタスクを終了します。メソッドを見て行きましょう。初期化されていたことを思い出してください。呼び出すことになります。返していない状態では、まだ同期的に実行されているのです。型のオブジェクトが返されます。同期的に完了したのかもしれませんし、非同期で実行されたものの、あまりの速さで既に完了しているかもしれませんし、まだ完了していないのかもしれません。オブジェクトの状態を検査して、どのように処理を進めるかを決定するコードを生成します。オブジェクトがすでに完了していれば(同期的に完了したか、チェックした時点で完了していたかは関係ない)、このメソッドのコードは同期的に実行し続けることができます。フックするコードを作成する必要があります。「終わったか?」と尋ねるコードを生成する必要があります。したら、それは制限的です。可能なすべての型について知らなければならないとしたら、それもまた制限的です。パターンを採用しています。できるようになっています。パターン」を実装することができます。メソッドが定義されている必要があります。呼び出された時点で、操作がすでに完了したかどうかをチェックするために使用されます(どのように実行されたかは関係ありません)。呼び出すことになります。メソッドの外に例外を伝播させる役割を果たします。それを返す役割を果たします。呼び出すメソッドの末尾に移動して完了です。返した場合に実際どうなるかです。メソッドの実行をサスペンドする必要があります。オブジェクトを返すことを意味します。スレッドプールから非同期に呼び出す必要があり、キューに投げられる事に注意しましょう)。オブジェクトに直接アクセスするような事はしません。フックを行う必要があります。