C#HttpWebRequests多线程的代理错误

时间:2012-11-09 17:44:32

标签: c# proxy httpwebrequest

我使用线程池进行多线程处理,每当我尝试启动请求时,我都会

Object reference not set to an instance of an object.

on

Application.Run(new Form1());

没有代理服务器我没有同样的问题

这是导致问题的代码

if (ProxyBox.Text != string.Empty)
{
     lock (locker)
     {
         Random rnd = new Random();
         int rndd = rnd.Next(0, int.Parse(ProxyNumber.Text));
         request.Proxy = new WebProxy(proxysplit[rndd].ToString());
     }
}

Basicaly我想每次从proxysplit数组中获取一个随机代理

任何想法:?

1 个答案:

答案 0 :(得分:1)

在我们为您提供帮助之前,您需要回答多个问题:

  1. 发生错误的是哪一行?
  2. 指定的代理是否已初始化(即不是null)?
  3. 此外,proxysplit是否已初始化?
  4. 检查未初始化的内容,您可能还想生成介于0和proxysplit中元素数量之间的随机数:

    if (ProxyBox.Text != string.Empty)
    {
        lock (locker)
        {
            Random rnd = new Random();
            int rndd = rnd.Next(0, proxysplit.Length);
            request.Proxy = new WebProxy(proxysplit[rndd].ToString());
        }
    }
    

    如果使用ProxyNumber且结果整数超出proxysplit数组长度的范围,那么在尝试访问超出范围的元素时也可能会出现异常,即{ {1}}。