我正在尝试使用匿名方法将委托传递给progressBar.Invoke(Delegate)
:
progressBar.Invoke(() => progressBar.Value = count);
但我收到以下错误:
无法将 lambda 表达式转换为类型“System.Delegate”,因为它不是委托类型。
有人可以解释我做错了什么吗?
我正在尝试使用匿名方法将委托传递给progressBar.Invoke(Delegate)
:
progressBar.Invoke(() => progressBar.Value = count);
但我收到以下错误:
无法将 lambda 表达式转换为类型“System.Delegate”,因为它不是委托类型。
有人可以解释我做错了什么吗?
该方法需要一个委托,而不是一个动作。因此,当您这样做时:
() => { .. }
它不知道你想要什么代表。改为这样做:
progressBar.Invoke(new Action(() => progressBar.Value = count));
Invoke
不接受特定类型的委托,它接受一个Delegate
(意味着它可以接受任何具有任何签名的委托)。您需要传入特定类型的委托(无论您选择哪一种):
progressBar.Invoke(new Action(() => progressBar.Value = count));