2016-07-12 3 views

답변

2

네, 바로 timout 것입니다, 당신은 자신을 쉽게 테스트 할 수

try 
{ 
    WebRequest myWebRequest = WebRequest.Create("http://stackoverflow.com/questions/38340099/c-sharp-httpwebrequest-timeout-setting-to-zero"); 
    myWebRequest.Timeout = 0; 
    WebResponse myWebResponse = myWebRequest.GetResponse(); 
} 
catch (Exception ex) 
{ 
    Console.WriteLine(ex.Message); // timeout exceeded 
} 

이유는 무엇입니까? 나는 나 자신에게 같은 것을 물었다. 어쩌면 테스트 목적이나 어떤 경우 에든 속성이 설정되도록 실수로 작동하지 않는 기본값이 필요한 경우 일 수 있습니다.

음수 값은 System.Threading.Timeout.Infinite의 값이기 때문에 -1과 별개로 음수 값을 허용하지 않습니다. Here's the source:

public override int Timeout { 
    get { 
     return _Timeout; 
    } 
    set { 
     if (value<0 && value!=System.Threading.Timeout.Infinite) { 
      throw new ArgumentOutOfRangeException("value", SR.GetString(SR.net_io_timeout_use_ge_zero)); 
     } 
     if (_Timeout != value) 
     { 
      _Timeout = value; 
      _TimerQueue = null; 
     } 
    } 
} 
+0

많은 감사를드립니다! – cd491415

관련 문제