如何在我的项目中添加“调用”方法?

时间:2019-07-02 10:03:44

标签: c# wpf nuget invoke

我找不到正确的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)));
    }

2 个答案:

答案 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();