public override int EndRead(IAsyncResult asyncResult)
        {
            ChainedAsyncResult <int> result = (ChainedAsyncResult <int>)asyncResult;

            result.End();
            return(result.Result);
        }
        public override void EndWrite(IAsyncResult asyncResult)
        {
            ChainedAsyncResult <NullType> result = (ChainedAsyncResult <NullType>)asyncResult;

            result.End();
        }