0

Dispatcher.Invoke アクションがすぐにレンダリングされないのはなぜですか? それは私を悩ませています

        Dispatcher.Invoke((Action)(() => busyIndicator1.BusyContent = loaderComment), System.Windows.Threading.DispatcherPriority.Send);

        var sw = new Stopwatch();

        sw.Start();
        var newItems = func.Invoke(Operation);
        sw.Stop();

私の新しい busyIndi​​cator1.BusyContent 値は、Func func が実行を終了した後にのみレンダリングされ、func にはしばらく時間がかかります。他のすべての Dispatcher.BeginInvoke 呼び出しの優先度を低く設定しています。

4

1 に答える 1

1

関数呼び出しでディスパッチする操作を担当するスレッドをブロックしています。ディスパッチャー キュー (少なくとも GUI レンダリング部分) は、スレッドを再びアイドル状態にするまで処理されません (つまり、終了したメソッド/イベント ハンドラー)。

別のスレッドで関数の実行を行います。

于 2013-07-10T13:27:18.990 に答える