private WebResponse GetResponseInternal() { if (this.webResponse != null) { return(this.webResponse); } lock (this) { if (this.requesting) { this.requestEndEvent = new AutoResetEvent(false); } } if (this.requestEndEvent != null) { this.requestEndEvent.WaitOne(); } FileStream fileStream = null; try { fileStream = new FileWebRequest.FileWebStream(this, FileMode.Open, FileAccess.Read, FileShare.Read); } catch (Exception ex) { throw new WebException(ex.Message, ex); } this.webResponse = new FileWebResponse(this.uri, fileStream); return(this.webResponse); }