@smail_digital

Почему при попытке реализовать многопоточность, пропускаются некоторые цифры?

Объсните, хотел в многопоточность, но в итоге проскакивает некоторые диапазоны проскакивает, да ещё с 1000 потоков подвисает, + почему разные потоки, по очередной берут следующие цифру, а хотя задумывалось делить на несколько маленьких
https://github.com/sdigi/VkDockSearch/blob/dev/VkD...
  • Вопрос задан
  • 294 просмотра
Пригласить эксперта
Ответы на вопрос 1
lam0x86
@lam0x86
for (int i = 0; i < taskCount; i++)
{
  Thread thread = new Thread(ParsingDocUserIdAync);
  p[1] = docStarId;
  p[2] += (int)offset;
  thread.Start(param);
  docStarId = p[2]+1;
  list.Add(thread);
}

Вы запускаете потоки, передавая в качестве аргумента один и тот же массив, при этом меняете его извне (p и param - суть один и тот же объект).
Вызов thread.Start(param) не гарантирует, что поток создастся и начнёт выполняться моментально.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы