簡體   English   中英

WebClient強制超時

[英]WebClient force Timeout

    public class MyWebClient : WebClient {

        private int timeout;
        public int Timeout
        {
            get
            {
                return timeout;
            }
            set
            {
                timeout = value;
            }
        }

        public MyWebClient()
        {
            this.timeout = 5000;
        }

        public MyWebClient(int timeout)
        {
            this.timeout = timeout;
        }

        protected override WebRequest GetWebRequest(Uri address)
        {
            var result = base.GetWebRequest(address);
            result.Timeout = this.timeout;
            return result;
        } 
}

我試圖強制超時到5000毫秒,但它不起作用下載不停止或退出5000 milsecs后。

它可以通過任務超時完成,但我不想在這里使用任務。

任何替代方式嗎?

你能提供更多信息嗎? 你想從中下載什么,你確定它不起作用嗎?

我已經嘗試了你的代碼,它似乎工作正常; 我得到一個System.Net.WebException“操作已經超時” - 你絕對不會吞下這個例外嗎?

你可以把請求放在一個新的線程上,然后觀察那個線程,如果你達到你指定的超時,那么殺死線程,從而中止請求。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM