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

を使用しProxyNumber、結果の整数がproxysplit配列の長さの範囲外である場合、範囲外の要素にアクセスしようとしたときに例外が発生することもありますArgumentOutOfRangeException

于 2012-11-09T17:54:06.560 に答える