我找不到正确的NuGet数据包来安装invoke方法。 我有一个wpf GUI,并且有一个单独的线程需要更新listBox中的项目。我需要“调用”方法才能更改listBox中的项目。
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)));
}
答案 0 :(得分:1)
使用Dispatcher.Invoke()
方法。可通过Application
类(see more)或控件本身进行访问。有关更多信息,请参见:Dispatcher.Invoke
答案 1 :(得分:0)
这对我有用:
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();