我有这个代表:
private delegate void NoArgDelegate(BitmapImage image);
我实例化委托并使用 Dispatcher.Invoke 运行它,如下所示:
var fetcher = new NoArgDelegate(InstantiateForm);
Dispatcher.Invoke(fetcher, DispatcherPriority.Normal, imageToPassIn);
我在任何方法范围之外但在我的 ViewModel 范围内有一个私有字段,在 InstantiateForm 内我实例化了对象:
private OmrForm _ormForm;
private void InstantiateForm(BitmapImage image)
{
_ormForm = new OmrForm(image);
}
这一切都发生在我的 ViewModel 中的一个方法中,该方法在我的 WPF 表单上的按钮的单击事件上运行。
我在构造函数中做了一些工作来计算我传入的图像类型并适当地设置坐标,这大约需要 2 秒,我希望我的 UI 在此期间能够响应,但事实并非如此。我试过使用 BeginInvoke 也无济于事。
这是怎么回事,为什么我的方法不是异步运行的?