我找不到可以安装Invoke方法的正确的Nuget数据包。我有一个WPF GUI,并且有一个单独的线程,需要在列表框中更新项目。我需要"调用"方法才能更改列表框中的项目。
public void displayPlayers(string players)
{
//spliting all the names.
string[] names = players.Split(", ".ToCharArray());
//Displaying the names.
foreach (string name in names)
this.Invoke((MethodInvoker)(() => playersListBox.Items.Add(name)));
}
使用Dispatcher.Invoke()
方法。它可以通过Application
类(请参阅更多(或控件本身访问。有关更多信息,请参见:dispatcher.invoke
这对我有用:
await System.Windows.Application.Current.Dispatcher.BeginInvoke(DispatcherPriority.ContextIdle, new Action(() =>
{
playersListBox.Items.Add(name);
}));
或不等待:
System.Windows.Application.Current.Dispatcher.BeginInvoke(DispatcherPriority.ContextIdle, new Action(() =>
{
playersListBox.Items.Add(name);
})).Wait();