投稿者 葉月  (社会人) 投稿日時 2010/5/11 21:18:27
複雑なFunctionの組み合わせで、呼び出される順序がズレる場合があるということですが、
並列処理を行っており、非同期処理のため順序がズレる可能性があるのでしょうか?
それとも、トリッキーな作りで想定していない順序になるということでしょうか?

前者なら非同期処理を、同期しなければならない部分で同期することで対処できます。
あとは条件文で異常な変数を摘出すれば、使用者に教えるなりログを取ればいいと思います。
詳細は、BeginInvokeとIAsyncResultを調べてみてください。

後者だったら複数のFunctionをコンボジットした自作メソッドを作り、想定外の順序にならないようにします。
問題が起きた場合に、どのFunctionを通ったのか、コンボジットされたメソッドをみるとわかるようにします。
ログに出力してチェックするための並列処理を走らせれば、要望に近いことができると思います。

>>>コンボジットのイメージ
' FunctionがAからZまであると想定します。 

    Private Sub Hoge1()
        FuncA()
        FuncB()
        FuncC()
    End Sub

    Private Sub Hoge2()
        FuncB()
        FuncE()
        FuncZ()
    End Sub

    Private Sub Hoge3()
        FuncA()
        FuncS()
        FuncX()
    End Sub