Dispatcher' 不包含 'InvokeAsync' 的定义并且没有扩展方法 'InvokeAsync'
Dispatcher' does not contain a definition for 'InvokeAsync' and no extension method 'InvokeAsync'
拜托,我遇到了错误,这是我的代码。
private void ComboBoxSelectionChanged(object sender, SelectionChangedEventArgs e)
{
_comboBox.Dispatcher.InvokeAsync(() => ContentChanged?.Invoke(sender, EventArgs.Empty));
}
它说 Dispatcher' does not contain a definition for 'InvokeAsync' and no extension method 'InvokeAsync' accepting a first argument of type 'Dispatcher' could be found (are you missing a using directive or an assembly reference? wpf
我迷路了,我需要这些方面的帮助。谢谢
Dispatcher.InvokeAsync
绝对是 .NET 4.5 的现有方法。如果您尝试针对 .NET 4.0 或更早版本进行编译,您将看到该错误。
它与您调用 Dispatcher.BeginInvoke
的效果相同。不同之处在于 BeginInvoke
接受委托(需要从 lambda 进行转换),而 InvokeAsync
不接受委托,因为它接受 Action
。这样做是为了重构 API,但不会破坏仍在使用 BeginInvoke
的代码。有关详细信息,请参阅 this thread。
.NET 4.5 之前:
_comboBox.Dispatcher.BeginInvoke((Action)(() => {
ContentChanged?.Invoke(sender, EventArgs.Empty);
}));
自 .NET 4.5:
_comboBox.Dispatcher.InvokeAsync(() => {
ContentChanged?.Invoke(sender, EventArgs.Empty);
});
拜托,我遇到了错误,这是我的代码。
private void ComboBoxSelectionChanged(object sender, SelectionChangedEventArgs e)
{
_comboBox.Dispatcher.InvokeAsync(() => ContentChanged?.Invoke(sender, EventArgs.Empty));
}
它说 Dispatcher' does not contain a definition for 'InvokeAsync' and no extension method 'InvokeAsync' accepting a first argument of type 'Dispatcher' could be found (are you missing a using directive or an assembly reference? wpf
我迷路了,我需要这些方面的帮助。谢谢
Dispatcher.InvokeAsync
绝对是 .NET 4.5 的现有方法。如果您尝试针对 .NET 4.0 或更早版本进行编译,您将看到该错误。
它与您调用 Dispatcher.BeginInvoke
的效果相同。不同之处在于 BeginInvoke
接受委托(需要从 lambda 进行转换),而 InvokeAsync
不接受委托,因为它接受 Action
。这样做是为了重构 API,但不会破坏仍在使用 BeginInvoke
的代码。有关详细信息,请参阅 this thread。
.NET 4.5 之前:
_comboBox.Dispatcher.BeginInvoke((Action)(() => {
ContentChanged?.Invoke(sender, EventArgs.Empty);
}));
自 .NET 4.5:
_comboBox.Dispatcher.InvokeAsync(() => {
ContentChanged?.Invoke(sender, EventArgs.Empty);
});