Как написать делегат вместо лямбда-выражения и анонимного метода - 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);
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д