Есть ли способ получить DoWork EventArgs в RunWorkerCompleted?
Я использую BackgroundWorker для экспорта некоторых данных в Excel. Я хотел бы открыть содержащую папку после сохранения файла в каталог, выбранный с помощью SaveFileDialog.
Я вызываю RunWorkerAsync(dialog.FileName) с параметром ExportFileName в качестве параметра.
Мои потребности будут открывать папку только после успешного сохранения файла. Правильным местом будет метод Worker_RunWorkerCompleted(отправитель объекта, RunWorkerCompletedEventArgs e). Можно ли получить DoWorkEventArgs здесь или мне нужно использовать закрытую переменную, чтобы получить мой exportPath здесь?
1 ответ
DoWorkEventArgs
Объект содержит свойство Result, которое можно использовать для хранения любого объекта, который вы хотите.
Этот объект затем передается в функцию RunWorkerCompleted через RunWorkerCompletedEventArgs
Результат собственности.
Вы можете использовать это свойство для передачи вашего имени файла. например.
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;
//...
}