Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 网络客户端强制超时_C#_.net_Windows_Winforms_Webclient - Fatal编程技术网

C# 网络客户端强制超时

C# 网络客户端强制超时,c#,.net,windows,winforms,webclient,C#,.net,Windows,Winforms,Webclient,我试图将超时时间强制为5000毫秒,但它不起作用。5000毫秒后下载不会停止或退出 它可以通过任务超时来完成,但我不想在这里使用任务 有其他方法吗???你能提供更多信息吗?你想从哪里下载,你确定它不起作用吗 我已经试过你的代码,它似乎工作得很好;我收到一个System.Net.WebException“操作超时”-您肯定没有接受此异常?您可以将请求放在一个新线程上,然后观察该线程,如果您达到指定的超时,则杀死该线程,从而中止请求 public class MyWebClient : We

我试图将超时时间强制为5000毫秒,但它不起作用。5000毫秒后下载不会停止或退出

它可以通过任务超时来完成,但我不想在这里使用任务


有其他方法吗???

你能提供更多信息吗?你想从哪里下载,你确定它不起作用吗


我已经试过你的代码,它似乎工作得很好;我收到一个System.Net.WebException“操作超时”-您肯定没有接受此异常?

您可以将请求放在一个新线程上,然后观察该线程,如果您达到指定的超时,则杀死该线程,从而中止请求

    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;
        } 
}