public override IAsyncResult BeginRead(byte[] buffer, int offset, int size, AsyncCallback callback, Object state) { CheckError(); try { return base.BeginRead(buffer, offset, size, callback, state); } catch { CheckError(); throw; } }