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 回答