如何将 "Invoke" 方法添加到我的项目中?
How to add "Invoke" method to my project?
我找不到合适的 NuGet 数据包来安装调用方法。
我有一个 wpf GUI,我有一个单独的线程需要更新列表框中的项目。我需要 "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)));
}
使用Dispatcher.Invoke()
方法。可通过 Application
class (see more) or on the control itself. For more info see: 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();
我找不到合适的 NuGet 数据包来安装调用方法。 我有一个 wpf GUI,我有一个单独的线程需要更新列表框中的项目。我需要 "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)));
}
使用Dispatcher.Invoke()
方法。可通过 Application
class (see more) or on the control itself. For more info see: 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();