私はこのデリゲートを持っています:
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);
}
これはすべて、WPF フォームのボタンのクリック イベントで実行される ViewModel 内のメソッドで発生しています。
コンストラクターで、渡した画像の種類を特定し、座標を適切に設定するためにいくつかの作業を行います。これは約 2 秒です。この間、UI を応答させたいのですが、そうではありません。私も BeginInvoke を使用してみましたが、役に立ちませんでした。
ここで何が起こっているのですか? メソッドが非同期で実行されないのはなぜですか?