Как написать делегат вместо лямбда-выражения и анонимного метода - C#
Формулировка задачи:
Пытаюсь разобраться с делегатами и многопоточностью.
Есть простой проект-пример на WinForms, с прогресбаром и циклом, эмулирующем работу. (во вложении)
Есть в коде некий метод
В оригинале используется лямбда-выражение. (и встроенный делегат Action)
Вместо лямбда выражения можно так же написать анонимный метод
Если я правильно понял, лямбда-выражения, анонимные методы и просто использование делегата - это всё равнозначные конструкции.
У меня не получилось написать для данного случая просто делегат.
_worker_WorkCompleted
, который вызывается при завершении работы
Листинг программы
- void metod1(bool canceled)
- {
- string message = canceled ? "Процесс отменен" : "Процесс завершен";
- MessageBox.Show(message);
- butstart.Enabled = true;
- progressBar2.Style = ProgressBarStyle.Blocks;
- textBox1.AppendText(_worker.report);
- }
- delegate void mydel();
- private void _worker_WorkCompleted(bool canceled) // завершение 2
- {
- mydel MyAction = () => //лямбда выражение
- {
- metod1(canceled);
- };
- Invoke(MyAction);
- }
Листинг программы
- mydel MyAction = delegate // анонимный метод
- {
- metod1(canceled);
- };
Вопрос вообщем такой:
Как в данном случае вместо анонимного метода и лямбда-выражения написать просто делегат?Решение задачи: «Как написать делегат вместо лямбда-выражения и анонимного метода»
textual
Листинг программы
- var method = new Action<bool>(metod1);
- method(canceled);
- Invoke(method);
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д