Я действительно новичок в программировании, и у меня очень мало знаний. Я сейчас нахожусь в плохой ситуации. У меня есть BackGroundWorker
и Mehod
. Я вызываю метод из события DoWork
из BackGroundWorker
. Проблема в том, что событие RunWorkerCompleted
вызывается до выполнения метода:
string[] files;
private void BGW1_DoWorkAsync(object sender, DoWorkEventArgs e) {
populate();
}
private void populate() {
files = GetFiles(@"C:\filesystem"); ///100 files here
}
private void BGW1_RunWorkerCompleted(object sender, RunWorkerCompletedEventArgs e) {
foreach(string filename in files) {
}
}
В цикле внутри события RunWorkerCompleted
я иногда получаю сообщения об ошибках типа Collection was modified
, а иногда он возвращает имена файлов, но не все из них (возможно, из-за того, что метод populate
не завершился полностью?)
Итак, есть ли способ ждать, пока метод не будет выполнен полностью / полностью? Я слышал об Async / Await, но я не знаю, как использовать его в моем конкретном случае. Любая помощь будет оценена :)