Как написать делегат вместо лямбда-выражения и анонимного метода - C#

Узнай цену своей работы

Формулировка задачи:

Пытаюсь разобраться с делегатами и многопоточностью. Есть простой проект-пример на WinForms, с прогресбаром и циклом, эмулирующем работу. (во вложении) Есть в коде некий метод

_worker_WorkCompleted

, который вызывается при завершении работы
Листинг программы
  1. void metod1(bool canceled)
  2. {
  3. string message = canceled ? "Процесс отменен" : "Процесс завершен";
  4. MessageBox.Show(message);
  5. butstart.Enabled = true;
  6. progressBar2.Style = ProgressBarStyle.Blocks;
  7. textBox1.AppendText(_worker.report);
  8. }
  9. delegate void mydel();
  10. private void _worker_WorkCompleted(bool canceled) // завершение 2
  11. {
  12. mydel MyAction = () => //лямбда выражение
  13. {
  14. metod1(canceled);
  15. };
  16. Invoke(MyAction);
  17. }
В оригинале используется лямбда-выражение. (и встроенный делегат Action) Вместо лямбда выражения можно так же написать анонимный метод
Листинг программы
  1. mydel MyAction = delegate // анонимный метод
  2. {
  3. metod1(canceled);
  4. };
Если я правильно понял, лямбда-выражения, анонимные методы и просто использование делегата - это всё равнозначные конструкции. У меня не получилось написать для данного случая просто делегат.

Вопрос вообщем такой:

Как в данном случае вместо анонимного метода и лямбда-выражения написать просто делегат?

Решение задачи: «Как написать делегат вместо лямбда-выражения и анонимного метода»

textual
Листинг программы
  1.             var method = new Action<bool>(metod1);
  2.             method(canceled);
  3.             Invoke(method);

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


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

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

9   голосов , оценка 4 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы