我有一个wpf UserControl来处理来自ComboBox的事件。该控件订阅ComboBoxes的DropdownClosed事件。我遇到了这个问题,在运行处理程序之后,Combobx基本实现会产生令人不快的默认代码。
我想知道是否有办法简单地放置我的代码,在处理程序完成后“同步”。
我发现了一种常用的方法是使用BeginInvoke:
void OnComboBoxDropDownClosed()
{
...
Dispatcher.BeginInvoke(DispatcherPriority.Normal, new Action(() => MyCodeAfterHandlerFinished()));
}
我认为我不需要这个(因为msdn告诉我它是异步运行的), 什么是最佳做法?
更多解释: 1)当ComboBox基础触发DropDownClosed()时得到通知(此事件可被视为“MyCode()”的条件) 2)等到ComboBox基础实现已遍历其所有调用列表并已调度其所有事件订阅者。 3)运行MyCode() - >如何使用Invoke / BeginInvoke放置MyCode? p>