前述のパターンを既存の同期クラスに実装していますが、次のようにMethodNameCompleteイベントのワイヤリングを強制することをお勧めします。
public event AsyncEventHandler MethodNameCompleted;
public void MethodNameAsync()
{
if (MethodNameCompleted == null)
{
throw new Exception(
"MethodNameCompleted must be wired before calling MethodNameAsync");
}
//perform async task...
}
残念ながら、パターンの概要(http://msdn.microsoft.com/en-us/library/wewwczdw.aspx)もリンクされた実装ページもこれについてアドバイスしていません。