在我维护的一些旧应用程序中进行法医考古调查时,我发现了这个问题:
这是一个WPF应用程序,最近已转换为.NET 4.0,并且这段代码在后台工作者内运行。
这是一个WPF应用程序,最近已转换为.NET 4.0,并且这段代码在后台工作者内运行。
if(bgWorker1.IsBusy || bgWorker2.IsBusy)
{
Thread.Sleep(100);
Application.Current.Dispatcher.Invoke(
System.Windows.Threading.DispatcherPriority.Background,
new System.Threading.ThreadStart(delegate { })
);
}
1- 当使用一个空操作的委托调用线程(主GUI线程)时,可能会出现什么副作用?其他两个线程也在主GUI线程上执行委托调用,但只有这个线程将优先级设置为与正常情况不同的值(它们使用Action而不是TreadStart)。
2- 我遇到了一些类似于死锁的情况,并且我感觉这可能是原因之一(在没有明显原因的情况下调整优先级和主GUI线程)。
谢谢