Один 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 = "Старт";
            }
 
        }

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

14   голосов , оценка 4.214 из 5
Похожие ответы