В следующей строке всегда выбирается первый элемент для каждого цикла цикла
listBox8.SelectedIndex = 0;
Я считаю, что вы можете вообще удалить эту строку, потому что предыдущая (listBox8.SetSelected(i, true);
) уже делает выбор
РЕДАКТИРОВАТЬ: Поскольку вопрос был обновлен
Я чувствую, что здесь может возникнуть исключение.Добавьте try/catch(Exception ex)
блок вокруг signinmobile
вызова метода и скажите нам, было ли обработано исключение eny.
Кстати, почему вы запускаете метод в другом потоке?Похоже, что существует проблема синхронизации потоков, поэтому, если список содержит более двух элементов, несколько потоков будут запускаться и удалять элементы в списке, а затем вызов SetSelected
завершится неудачно, поскольку он кэширует значение индекса i
, которое в настоящее время не существует, так как какой-то поток уже удаленitem ... Итак, запустите все в одном потоке или выполните t.Join()
после t.Start()
, чтобы основной поток ожидал завершения рабочего потока и продолжал следующий цикл цикла.