public override Stream GetRequestStream() { IAsyncResult result = BeginGetRequestStream(null, null); if (Timeout != Threading.Timeout.Infinite && !result.IsCompleted && (!result.AsyncWaitHandle.WaitOne(Timeout, false) || !result.IsCompleted)) { _stream?.Close(); throw new WebException(SR.net_webstatus_Timeout, WebExceptionStatus.Timeout); } return(EndGetRequestStream(result)); }