私は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