Я пытаюсь заполнить список из примерно 3000 слов в выпадающем меню выпадающего списка.Это заняло много времени в одном цикле итерации, поэтому я решил использовать многопоточность, чтобы поток выполнял ту же работу для трети списка.Он работает быстрее, но я заметил, что он сильно зависает при работе потоков.Я не уверен, является ли это проблемой с блокировкой или это просто занимает много времени, чтобы заполнить список элементов в выпадающем списке.
Я пытался использовать методы, вызывающие методы, но я чувствую, что я использую их неправильно в этом случае.
У меня начались следующие темы:
Thread threadmid = new Thread(splitMidThird);
Thread threadtop = new Thread(splitTopThird);
threadmid.Start();
threadtop.Start();
private void splitMidThird()
{
int thirds = totalPartNumber.Count() / 3;
if (PartNumber_Text.InvokeRequired)
{
PartNumber_Text.BeginInvoke(new MethodInvoker(delegate
{
for (int index = thirds; index <= thirds * 2; index++)
{
PartNumber_Text.Items.Add(totalPartNumber.ElementAt(index));
}
}));
}
return;
}
private void splitTopThird()
{
int thirds = totalPartNumber.Count() / 3;
if (PartNumber_Text.InvokeRequired)
{
PartNumber_Text.BeginInvoke(new MethodInvoker(delegate
{
for (int index = thirds * 2; index <= totalPartNumber.Count() - 1; index++I)
{
PartNumber_Text.Items.Add(totalPartNumber.ElementAt(index));
}
}));
}
return;
}
Форма просто зависает, когда я пытаюсь это сделать.