4

InvalidOperationExceptionVS2012 Ultimate で次のように言い始めました。

「ディスパッチャの処理は中断されましたが、メッセージはまだ処理中です。」

... aのコード ビハインドのMessagBoxどこかで aを呼び出すたびに。UserControlこれは現在、ダウンロードしたプロジェクトや、UserControl 自体以外の実際のコードを持たない新しいプロジェクトを含む、コンピューター上のすべてのプロジェクトに影響を与えるようです。UserControlただし、これは s にのみ影響するようです。標準クラスと Windows のコード ビハインドは問題なく動作します。


System.InvalidOperationException が発生しました

HResult=-2146233079

Message=Dispatcher の処理は中断されましたが、メッセージはまだ処理中です。

ソース=WindowsBase

スタック トレース: System.Windows.Threading.Dispatcher.WndProcHook (IntPtr hwnd、Int32 msg、IntPtr wParam、IntPtr lParam、ブール値 & 処理) で

内部例外:


VSによると、それはnullであるため、InnerExceptionは空白です。この問題は誰にとっても意味がありますか? Google で検索したところ、この例外がスローされた例がいくつか見つかりましたが、このような状況はありませんでした。VS を再インストールして最善を尽くす前に、ここの誰かがこれを引き起こしている可能性があることについてある程度の知識を持っていることを願っています。

これを修正する方法についてのアイデアは大歓迎です。


Mark Hall のリクエストによると、次のような単純なクラスでは例外が発生します。

public partial class TestView : UserControl
{
    public TestView()
    {
        InitializeComponent();

        System.Windows.MessageBox.Show("Test");
    }
}
4

1 に答える 1

1

Hans Passant の言うとおりです。コンストラクター中にメッセージ ボックスを表示しようとするべきではありません。コンストラクターは実行時だけでなく、設計時にも呼び出されます。

これをデバッグ目的で使用している場合は、ログ ファイルに書き込むか、代わりに Console.WriteLine(...) を試してください。

于 2014-10-30T14:22:43.603 に答える