微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

c# – 将Messagebox放在任何项目的任何UserControl中的任何位置时出现InvalidOperationException

我已经开始在VS2012 Ultimate中获得InvalidOperationException了:

“调度程序处理已暂停,但邮件仍在处理中.”

…每当我在UserControl的代码隐藏中的任何地方调用MessagBox时.这当前似乎会影响我的计算机上的每个项目,包括我下载的项目以及除UserControl本身之外没有真正代码的新项目.但这似乎只影响UserControls;标准类和Windows代码隐藏工作正常.

发生system.invalidOperationException

的HResult = -2146233079

Message = dispatcher处理已暂停,但仍在处理消息.

来源= WindowsBase

堆栈跟踪:
       在System.Windows.Threading.dispatcher.WndProcHook(IntPtr hwnd,Int32 msg,IntPtr wParam,IntPtr lParam,Boolean& handling)

的InnerException:

InnerException是空白的,因为根据VS,它是null.这个问题对任何人都有意义吗?在Google搜索之后,我发现了一些抛出此异常的实例,但这些情况都不是这样的.我希望这里的某些人可能对可能导致这种情况的一些知识有所了解,并且可能能够在我尝试重新安装VS并希望获得最佳效果之前帮助我.

任何关于如何解决这个问题的想法都将非常感激.

Per Mark Hall的要求:像这样简单的类会导致异常:

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

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

解决方法

Hans Passant是对的,你真的不应该尝试在构造函数显示一个消息框.构造函数不仅在运行时被调用,而且在设计时也被调用.

如果您将其用于调试目的,请尝试写入日志文件或Console.WriteLine(…).

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐