我们的一些非技术用户在应用程序中遇到问题,有时会出现一个对话框MessageBox被显示在主窗体后面,直到他们关闭看不到的消息框为止,应用程序不接受任何输入。
该应用程序是用C#编写的,消息框是标准的,例如代码可以简单地是MessageBox.Show(message, caption),消息框可以由主UI线程创建(即不是某个后台线程)。应用程序可以不必全屏运行,但我们的90%用户都以全屏方式运行。
大多数情况下(也许超过99%),消息框会正确显示,我从未成功地看到它出错了,但我见过有错误发生的机器。
我注意到的一件事是,如果您有一个显示对话框的应用程序,那么当您查看任务管理器时,您通常只会看到应用程序列表中的一个条目。每当消息框被隐藏时,您将会看到两个条目,一个是主应用程序,另一个是这个消息框。
一旦您知道发生了什么,很容易解决这个问题,但我们一些非技术用户会感到困惑,最终关闭他们的计算机。(使用远程桌面的用户更加困惑,因为那样并不能解决问题)。
我认为这与操作系统无关,因为我在Vista上看到它发生过,并被告知它也会在Windows 2003服务器的终端会话中发生。
有人知道为什么会发生这种情况吗?更重要的是,是否有任何方法可以避免它?