Как написать делегат вместо лямбда-выражения и анонимного метода - 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);