Application.ThreadException捕获的Win32Exception - 缺少自己的代码

时间:2013-05-08 07:40:46

标签: .net winforms exception

我在UltraToolbarsManager(Infragistics)的功能区中的某处获得了未处理的异常。但这不是我想在这里提出的相关部分。我的问题是:为什么我在堆栈跟踪中看不到我的应用程序的任何方法?堆栈跟踪仅显示Infragistics和Windows窗体模块。

复制场景非常罕见,但是几次看到它总是在机器暂停模式时。该异常由Application.ThreadException事件处理程序处理,我没有机会从其他位置捕获(表单已加载并使用Applicatioin.Run()运行。)

以下是例外情况:

The handle is invalid
System.ComponentModel.Win32Exception
Stack Trace:
   bei System.Drawing.Graphics.CopyFromScreen(Int32 sourceX, Int32 sourceY, Int32 destinationX, Int32 destinationY, Size blockRegionSize, CopyPixelOperation copyPixelOperation)
        bei System.Drawing.Graphics.CopyFromScreen(Int32 sourceX, Int32 sourceY, Int32 destinationX, Int32 destinationY, Size blockRegionSize)
        bei System.Drawing.Graphics.CopyFromScreen(Point upperLeftSource, Point upperLeftDestination, Size blockRegionSize)
        bei Infragistics.Win.ControlUIElementBase.CaptureOldImage(UIElement element)
        bei Infragistics.Win.TransitionInfo..ctor(UIElement element, Transition transition, TransitionSettings settings)
        bei Infragistics.Win.ControlUIElementBase.InitiateTransition(TransitionSettings settings, Transition transition, UIElement element)
        bei Infragistics.Win.UIElement.InitiateTransition(TransitionSettings settings, UIElementTransitionType transitionType)
        bei Infragistics.Win.UltraWinToolbars.RibbonGroupUIElement.OnMouseLeave()
        bei Infragistics.Win.ControlUIElementBase.ElementEntered(UIElement element, Boolean triggerMouseLeavesOnly)
        bei Infragistics.Win.ControlUIElementBase.SyncMouseEntered(Boolean triggerMouseLeavesOnly, UIElementInputType inputType, Boolean ignoreLastElementEntered)
        bei Infragistics.Win.ControlUIElementBase.ProcessMouseLeave(Object sender, EventArgs e)
        bei Infragistics.Win.Utilities.ProcessEvent(Control control, ProcessEvent eventToProcess, EventArgs e)
        bei Infragistics.Win.UltraControlBase.OnMouseLeave(EventArgs e)
        bei Infragistics.Win.UltraWinToolbars.UltraToolbarsDockArea.OnMouseLeave(EventArgs e)
        bei System.Windows.Forms.Control.WmMouseLeave(Message& m)
        bei System.Windows.Forms.Control.WndProc(Message& m)
        bei System.Windows.Forms.Control.ControlNativeWindow.OnMessage(Message& m)
        bei System.Windows.Forms.Control.ControlNativeWindow.WndProc(Message& m)
        bei System.Windows.Forms.NativeWindow.Callback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)

除了Application.ThreadException事件之外,有没有办法捕获异常,我可能会看到更多详细信息?

异常是在创建表单的同一个线程上处理的,所以我认为它不是由另一个修改UI的线程引起的。

如果您有任何帮助或提示,我将不胜感激。

致以最诚挚的问候,

迈克尔

2 个答案:

答案 0 :(得分:0)

答案可以在这里找到: http://social.msdn.microsoft.com/Forums/en-US/netfxbcl/thread/d55d7789-0454-461c-bb3a-62639c394603/

在Windows 8上,锁定屏幕出现在锁定屏幕前,并且在System.Drawing.Graphics.CopyFromScreen()可以完成任务之前句柄无效。

感谢您的倾听,感谢史蒂夫带我回到初步想法:)

答案 1 :(得分:0)

在Infragistics论坛上也有一个关于同样行为的讨论。可在此处找到:http://www.infragistics.com/community/forums/p/79895/403562.aspx

感谢。