作者热门文章
- r - 以节省内存的方式增长 data.frame
- ruby-on-rails - ruby/ruby on rails 内存泄漏检测
- android - 无法解析导入android.support.v7.app
- UNIX 域套接字与共享内存(映射文件)
我需要制作 RunWorkerAsync()
返回 List<FileInfo>
.
能够从后台 worker 返回对象的过程是什么?
最佳答案
在你的DoWork
BackgroundWorker
的事件处理程序(这是后台工作发生的地方)有一个参数 DoWorkEventArgs
.这个对象有一个公共(public)属性对象 Result。当您的工作人员生成结果(在您的情况下为 List<FileInfo>
)时,设置 e.Result
到那个,然后返回。
现在您的 BackgroundWorker 已完成其任务,它会触发 RunWorkerCompleted
事件,它有一个 RunWorkerCompletedEventArgs
对象作为参数。 RunWorkerCompletedEventArgs.Result
将包含您的 BackgroundWorker
的结果.
例子:
private void bgw_DoWork(object sender, DoWorkEventArgs e)
{
int result = 2+2;
e.Result = result;
}
private void bgw_RunWorkerCompleted(object sender, RunWorkerCompletedEventArgs e)
{
int result = (int)e.Result;
MessageBox.Show("Result received: " + result.ToString());
}
关于c# - 如何让 BackgroundWorker 返回一个对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/939635/
我是一名优秀的程序员,十分优秀!