2

私はUIメッセージポンプで実行したいメソッドを持っているので、次のことを行います:

private void SomeMethod() {
    BeginInvoke(new MethodInvoker(MethodToInvoke));
}

private void MethodToInvoke() {
    // This method contains code that I wish to execute on UI message pump.

}

これで、プロジェクトのデバッグ ビルドを作成すると、上記は問題なく動作します。ただし、リリース ビルドを作成すると、"MethodToInvoke" メソッドが呼び出されません。

なぜこれが考えられるのか誰にも分かりますか?

ありがとう、エラン

4

1 に答える 1

1

BeginInvoke の呼び出しが例外をスローしていたことが判明しましたが、これは見逃していました。もちろん、それはターゲットメソッドが実行されなかった理由を説明しています。

System.InvalidOperationException: ウィンドウ ハンドルが作成されるまで、Invoke または BeginInvoke をコントロールで呼び出すことはできません。

ただし、この例外がデバッグ ビルドでスローされなかった理由は明らかではありません。

于 2010-06-08T21:16:20.863 に答える