我有這樣的委託:WPF UI Dispatcher.Invoke通話過程中,unrespoonsive
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也無濟於事。
這裏發生了什麼,爲什麼我的方法不是異步運行?