我正在使用
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文档进行了很多研究,但我不明白为什么会这样.
有人请告诉我这些功能的规则究竟是什么?
非常感谢!
T& T公司