>>664
それは設計が悪かったのでは・・・

というのは置いといて、.Net の各種 BeginHogeHoge の非同期処理メソッドって実は壊れた設計ですよね。
async_result = f.BeginXXX(); とかするわけだけど、非同期コールバックが呼ばれる前にこの代入が完了している、
という保証は無いわけで、内部で安心して EndXXX(async_result) できない。

殆ど全ての場合大丈夫だろうし、サンプルでもこの問題は無いことになってるけど、実際にはlock等で代入の完了を
待ち合わせる必要があるはず。out パラメータにして、値がセットされてからコールバックが呼ばれることを保証して
くれればよかったのに・・・