1
MSDNによれば、WebRequestのデフォルトのタイムアウトは100秒(100,000 ms)です。 タイムアウトを0(ゼロ)に設定するとすぐにタイムアウトが要求されますか?c#HttpWebRequestタイムアウト値を0に設定する
もしそうなら、そのようなことをいつ行うのですか?
MSDNによれば、WebRequestのデフォルトのタイムアウトは100秒(100,000 ms)です。 タイムアウトを0(ゼロ)に設定するとすぐにタイムアウトが要求されますか?c#HttpWebRequestタイムアウト値を0に設定する
もしそうなら、そのようなことをいつ行うのですか?
はい、それはすぐに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;
}
}
}
非常に高く評価されたTim! – cd491415