Как добавить метод Invoke в мой проект? - PullRequest
1 голос
/ 02 июля 2019

Я не могу найти правильный пакет NuGet для установки метода invoke.У меня есть графический интерфейс wpf, и у меня есть отдельный поток, который должен обновить элементы в listBox.Мне нужен метод Invoke, чтобы изменить элементы списка.

    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 ]

1 голос
/ 02 июля 2019

Используйте метод Dispatcher.Invoke(). Он доступен через Application класс (подробнее) или на самом элементе управления. Для получения дополнительной информации см .: Dispatcher.Invoke

0 голосов
/ 02 июля 2019

Это работает для меня:

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();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...