Мой program.cs вызывает родительский mdi frmMain. Затем frmMain открывает различные дочерние формы в зависимости от действий пользователя.
Вся логика обработки написана в BusinessLogic.cs. frmMain при загрузке вызывает методы BusinessLogic.cs для первоначального заполнения данных. Дочерние формы тоже вызывают BusinessLogic, чтобы получать данные и обрабатывать их. Я хотел бы сделать все это с помощью BackGroundWorker, т.е. frmMain вызывает (скажем) метод StartBGWorker () BusinessLogic.cs, и этот метод создает фонового работника для этого конкретного вызова, вызывает событие Do_work, выполняет выборку и обработку и закрывает когда закончите.
Я в растерянности относительно того, как создать экземпляр и события для фонового работника. Так как же мне использовать backgroundworker в файле класса?
Редактировать: Возможно, моя логика неверна, и я должен добавить BGW к каждой форме, которая вызывает BusinessLogig.cs. Тогда всякий раз, когда я вызываю метод BusinessLogic, я могу сделать это через фонового работника. Это будет лучшая реализация?
Edit2: чувствую себя немного идиотским из-за моих сомнений теперь, когда я нашел способ. Я только что создал публичный статический метод с кодом инициализации BGW в BusinessLogic. Теперь, когда мне нужно выполнить обработку, я сначала вызываю этот метод из моих форм.
Я хотел бы знать, является ли моя реализация BGW стандартной или есть какой-то способ улучшить дизайн.