我对编程很陌生,而且我的知识很少。我目前情况很糟糕。我有一个BackGroundWorker
和一个Mehod
。我从DoWork
的{{1}}事件中调用该方法。问题是,在方法执行完毕之前,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
方法没有完全完成? )
那么,有没有办法等到方法完全/完全执行?我听说过异步/等待,但我不知道如何在我的具体情况下使用它。任何帮助将不胜感激:)
答案 0 :(得分:0)
尝试将DontAlign
事件与AutoResetEvent
一起使用。
BackgroundWorker