Возьмем метод System.Windows.Forms.Control.Invoke(метод делегата)
Почему это дает ошибку времени компиляции:
string str = "woop";
Invoke(() => this.Text = str);
// Error: Cannot convert lambda expression to type 'System.Delegate'
// because it is not a delegate type
Но это прекрасно работает:
string str = "woop";
Invoke((Action)(() => this.Text = str));
Когда метод ожидает простого делегата?