Ваш основной поток завис, потому что вы вызываете GetFiles()
с него.таким образом, у вас есть мертвая блокировка, вот сценарий:
Основной поток будет блокироваться в строке autoEvent.WaitOne();
в ожидании продолжения сигнала, но он никогда не получит этот сигнал, потому что сигнал зависит от выполнениякод в главном потоке "listBox1.Items.Add(number);
" и последний будет заблокирован в ожидании завершения autoEvent.WaitOne()
.мертвая блокировка.
Чтобы исправить это, запустите метод GetFiles()
из другого потока, а не из основного потока, поэтому:
ThreadPool.QueueUserWorkItem(new WaitCallback((_) => { GetFiles(); }), null);