Один backgroundworker и много методов - C#
Формулировка задачи:
Здравствуйте!!!!
Такой вопрос:
Есть много разных методов, довольно длительных по времени выполнения, которые желательно запускать в фоновом режиме.
Как можно в один BGW подавать разные методы?
В backgroundworker_DoWork() { } передавать название метода, который нужно выполнять.
Или если мой ход мыслей не правильный, то как можно такое реализовать?
Спасибо!
В дополнение к этому вопросу ещё один:
Если есть коллекция List и с ней надо работать, анализировать и всякое другое. Можно ли эту одну коллекцию параллельно использовать в разных методах в один и тот же момент?
И всё это запускать через BGW
Решение задачи: «Один backgroundworker и много методов»
textual
Листинг программы
private void button3_Click(object sender, EventArgs e) { if (button3.Tag == null) { button3.Text = "Отмена"; button3.Tag = 1; progressBar1.Value = 0; IProgress<int> progress = new Progress<int>(value => progressBar1.Value = value); Task.Run(() => { for (var i = 0; i < 10; i++) { Thread.Sleep(1000); progress.Report(i * 10); if (button3.Tag == null) break; //Если нажата кнопка в режиме "Отмена" } progress.Report(100); }); } else { button3.Tag = null; button3.Text = "Старт"; } }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д