等到在backgroundworker c#中执行方法

时间:2018-05-06 06:23:25

标签: c# asynchronous

我对编程很陌生,而且我的知识很少。我目前情况很糟糕。我有一个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方法没有完全完成? )

那么,有没有办法等到方法完全/完全执行?我听说过异步/等待,但我不知道如何在我的具体情况下使用它。任何帮助将不胜感激:)

1 个答案:

答案 0 :(得分:0)

尝试将DontAlign事件与AutoResetEvent一起使用。

BackgroundWorker