Софт для взаимодействия с разными интернет ресурсами обрабатывает не все данные - C#

Узнай цену своей работы

Формулировка задачи:

Здравствуйте. Пишу многопоточный софт, для взаимодействия с разными интернет ресурсами. Потоки должны проходится по ArrayList() массиву и обрабатывать кое-как каждую строку, после чего записывать либо в Good, либо в Bad. Но Поток(и) часто не доделывают работу(буквально на 1-5 эл. массива) и заканчивают. Не понимаю, что не так. так происходит вызов потоков:
for (int i = 0; i < Vars.ThreadCount; i++)
                    {
 
                        thread[i] = new Thread(process);
                        thread[i].IsBackground = true;
                        thread[i].Start();

                    }
вот void-функция потока:
private void process()
        {
 
            int selfIndex = 0;
 
           try
            {
                #region Stream
 
                while (true)
                {
 
                    lock (locker)
                    {
                        index++;
                        selfIndex = index;
                    }
 
                    if (selfIndex > Vars.CountAccs - 1)
                    {
                        Thread.Sleep(10);
                        goto End;
                    }

                    //// ТУТ НАШ КОД для потока!! в качестве счетчика юзать переменную index!

                      string link = Vars.Links[selfIndex].ToString();
 
                   ///... тут что-то происходит с переменной link

                    Vars.Checked++;
                    //////////////////////////////////
 
                    End: ;
                    Thread.Sleep(500);
 
                    if (selfIndex == (Vars.CountAccs - 1))
                    {
 
                        break;
                    }

                }

                #endregion
            }
                  catch (Exception ex) { File.AppendAllText("Errors.txt","["+DateTime.Now.ToShortDateString() + " " + DateTime.Now.ToShortTimeString()+"]: [" + ex.StackTrace + "]:" + ex.Message + "\n"); }
            Vars.AreWorking = false;
        }
наго*нокодил но не знаю, почему оно, бывает, не все считает помогите, пожалуйста!

Решение задачи: «Софт для взаимодействия с разными интернет ресурсами обрабатывает не все данные»

textual
Листинг программы
                if ( _countGood >= ProxyGrabber.LimitedProxy && ProxyGrabber.LimitedProxy > 0 ) 
                    Thread.CurrentThread.Abort();

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

5   голосов , оценка 4 из 5
Похожие ответы