Я использую фоновые работники VS 2015 для выполнения некоторых задач.Передать переменную RunWorkerCompleted() после выполнения DoWork()
У меня есть DoWork()
метод, который использует List<string> myList
, и он удаляет каждую запись в списке после завершения определенного процесса. Моя цель - сообщить пользователям, какая запись в myList
не была обработана (поскольку она удаляет запись после каждого процесса, все, что осталось в конце, является тем, которое НЕ обрабатывается). Чтобы сделать это, я собирался передать переменную myList
в RunWorkerCompleted()
, но не только не знаю, как это сделать, я даже не уверен, что это лучший способ сделать это.
Есть ли лучшие способы сообщить пользователям, какая запись в myList
не обрабатывалась, а если нет, как передать переменную из DoWork() в RunWorkerCompleted()?
Текущий RunWorkerCompleted() метод:
private void bgw_RunWorkerCompleted(object sender, RunWorkerCompletedEventArgs e)
{
if(e.Error != null)
{
MessageBox.Show(e.Error.ToString());
}
else
{
MessageBox.Show("Done!");
}
}
В принципе, я хочу MessageBox, чтобы отобразить, какие элементы не обрабатываются, когда это делается запуском задачи
Любая причина не использовать async/wait вместо фоновых работников, поскольку это рекомендуемый подход? –
Im начинающий пользователь, поэтому я точно не знаю разницу, но я думал, что асинхронный был для веб-приложения. Mine - это автономный winform (например, не подключение к сети, а не использование сервера) – djskj189
@ djskj189 'async' - полезный инструмент для любого приложения, работающего с асинхронной операцией. Если у вас асинхронная операция, вы можете ее использовать. – Servy