我正在使用 WPF,我对执行顺序Control.Dispatcher.BeginInvoke()
和Control.Dispatcher.Invoke()
.
我将在下面展示一个代码示例
backgroundThread = new Thread(BackgroundThread);
backgroundThread.Start();
public void BackgroundThread()
{
this.Dispatcher.BeginInvoke(new Action(delegate()
{
WriteLog("Run command 1");
}));
this.Dispatcher.Invoke(new Action(delegate()
{
WriteLog("Run command 2");
}));
}
我希望“命令 1”将在“命令 2”之前运行并完成,但有时似乎“命令 2”在“命令 1”之前运行。我在互联网和 MSDN 文档上进行了很多研究,但我不明白为什么会发生这种情况。
有人请告诉我这些功能的确切规则吗?
非常感谢!
电通