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