Я работаю над проектом winforms. Я реализую архитектуру MVP. У меня есть несколько ресурсоемких заданий, выполняющихся на докладчике (чтение из файловой системы и выполнение массовых вставок в БД). Я хотел бы выполнить эти операции в фоновом потоке, не блокируя пользовательский интерфейс и не обновляя элементы управления в моем представлении (индикатор выполнения и представление данных).
Должен ли я просто получить доступ к объекту backgroundworker в моем презентаторе и обработать его события в презентаторе, если обработчики событий просмотра инициируют события, которые слушатель прослушивает ??
Например:
В ПРОСМОТРЕ:
private void backgroundWorker_ProgressChanged(object sender, System.ComponentModel.ProgressChangedEventArgs e)
{
if (WorkerProgressChange != null)
{
WorkerProgressChange(this, EventArgs.Empty);
}
}
В докладчике:
_view.WorkerProgressChange += UpdateView;
Это кажется разумным? Может кто-нибудь предложить лучшую модель?
Спасибо!