2016-07-12 12 views
1

MSDNによれば、WebRequestのデフォルトのタイムアウトは100秒(100,000 ms)です。 タイムアウトを0(ゼロ)に設定するとすぐにタイムアウトが要求されますか?c#HttpWebRequestタイムアウト値を0に設定する

もしそうなら、そのようなことをいつ行うのですか?

答えて

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

非常に高く評価されたTim! – cd491415

関連する問題