public new static T End(IAsyncResult result) { TypedCompletedAsyncResult <T> completedResult = result as TypedCompletedAsyncResult <T>; if (completedResult == null) { throw new ArgumentException("Invalid async result.", "result"); } return(TypedAsyncResult <T> .End(completedResult)); }