有没有办法在 RunWorkerCompleted 中接收 DoWork EventArgs?
Is there a way to receive DoWork EventArgs in RunWorkerCompleted?
我正在使用 BackgroundWorker 将一些数据导出到 Excel。
我想在将文件保存到通过 SaveFileDialog 选择的目录后打开包含的文件夹。
我正在使用 ExportFileName 作为参数调用 RunWorkerAsync(dialog.FileName)。
我的需求是只有在文件保存成功后才打开文件夹。
正确的位置是 Worker_RunWorkerCompleted(object sender, RunWorkerCompletedEventArgs e) 方法。是否可以在此处获取 DoWorkEventArgs,或者我是否必须使用私有变量在此处获取我的 exportPath?
DoWorkEventArgs
对象包含一个名为 Result 的 属性,可用于存储您想要的任何对象。
此对象然后通过 RunWorkerCompletedEventArgs
的 Result 属性.
传递给 RunWorkerCompleted 函数
您可以使用此 属性 来传递您的文件名。
例如。
void Worker_DoWork(object sender, DoWorkEventArgs e)
{
string fileName = (string)e.Argument;
//...
e.Result = fileName;
}
void Worker_RunWorkerCompleted(object sender, RunWorkerCompletedEventArgs e)
{
string fileName = (string)e.Result;
//...
}
我正在使用 BackgroundWorker 将一些数据导出到 Excel。 我想在将文件保存到通过 SaveFileDialog 选择的目录后打开包含的文件夹。
我正在使用 ExportFileName 作为参数调用 RunWorkerAsync(dialog.FileName)。
我的需求是只有在文件保存成功后才打开文件夹。 正确的位置是 Worker_RunWorkerCompleted(object sender, RunWorkerCompletedEventArgs e) 方法。是否可以在此处获取 DoWorkEventArgs,或者我是否必须使用私有变量在此处获取我的 exportPath?
DoWorkEventArgs
对象包含一个名为 Result 的 属性,可用于存储您想要的任何对象。
此对象然后通过 RunWorkerCompletedEventArgs
的 Result 属性.
您可以使用此 属性 来传递您的文件名。 例如。
void Worker_DoWork(object sender, DoWorkEventArgs e)
{
string fileName = (string)e.Argument;
//...
e.Result = fileName;
}
void Worker_RunWorkerCompleted(object sender, RunWorkerCompletedEventArgs e)
{
string fileName = (string)e.Result;
//...
}