-1

我正在使用线程池进行多线程处理,每当我尝试启动我得到的请求时

Object reference not set to an instance of an object.

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

基本上我想每次都从 proxysplit 数组中获取一个随机代理

有任何想法吗 :?

4

1 回答 1

1

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

  1. 错误发生在哪一行?
  2. 指定的代理是否已初始化(即未初始化null)?
  3. 再者,是否proxysplit初始化?

检查未初始化的内容,您可能还希望生成介于 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());
    }
}

如果您使用 theProxyNumber并且结果整数超出了proxysplit数组长度的范围,那么您在尝试访问超出范围的元素时也可能会遇到异常,即ArgumentOutOfRangeException.

于 2012-11-09T17:54:06.560 回答