Control.BeginInvoke と Control.Invoke の呼び出しが呼び出された順序で実行されるかどうかを知る必要があります。
次のシナリオがあります。
- UI スレッドがブロックされている
- WCF スレッド呼び出し Control.BeginInvoke
- WCF スレッドは Control.Invoke を呼び出します (または、BeginInvoke を再度呼び出します)。
- UI スレッドのブロックが解除されました
- ??
ステップ 1-4 の実行順序は、示されている順序であることが保証されています (技術的には順序がそのようであるとは限りませんが、私が持っている質問は、順序が示されている場合にのみ関係があります)。
質問は、手順 2 の BeginInvoke 呼び出しの前に、手順 3 の Invoke/BeginInvoke 呼び出しが実行される可能性があるかどうかです。
また、UI スレッドのブロックについてコメントしないでください。