为什么我的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();
我的新busyIndicator1.BusyContent值仅在我的Func func完成执行后呈现,而func需要一段时间。 我已经为我的所有其他Dispatcher.BeginInvoke调用设置了低优先级。
答案 0 :(得分:1)
您正在阻止负责您通过函数调用发送的操作的线程。调度程序队列(至少是GUI呈现部分)不会被处理,直到您再次让线程空闲(即方法/事件处理程序退出)。
在另一个线程上执行函数。