我有一个程序在后台线程中进行一些几何分析。
通常这工作得很好,但令人惊讶的是,当我尝试在我的开发计算机上创建 PathGeometry 时出现异常:
所以在简单的代码上:
PathGeometry geometry = new PathGeometry();
我得到一个 System.TypeInitializationException {"Der Typeninitialisierer für \"System.Windows.Media.PathGeometry\" hat eine Ausnahme verursacht."}
堆栈跟踪是:
bei System.Windows.Media.PathGeometry..ctor()
bei Bsoft.ilka.AlkisLeser.AlkisDatei.GetPosition(XElement xe) in AlkisDatei.cs:Zeile 267.
此异常包含 InnerException System.ComponentModel.Win32Exception {"Ungültiges Fensterhandle"} InnerException 的堆栈跟踪是:
bei MS.Win32.UnsafeNativeMethods.GetWindowLongWndProc(HandleRef hWnd)
bei MS.Win32.HwndSubclass.UnhookWindowProc(Boolean force)
bei MS.Win32.HwndSubclass.Dispose()
bei MS.Win32.HwndWrapper..ctor(Int32 classStyle, Int32 style, Int32 exStyle, Int32 x, Int32 y, Int32 width, Int32 height, String name, IntPtr parent, HwndWrapperHook[] hooks)
bei System.Windows.Threading.Dispatcher..ctor()
bei System.Windows.Threading.Dispatcher.get_CurrentDispatcher()
bei System.Windows.DependencyObject..ctor()
bei System.Windows.Media.PathFigureCollection.get_Empty()
bei System.Windows.Media.PathGeometry..cctor()
奇怪的事情:可执行文件确实可以在其他计算机上运行。
问题是什么?为什么 PathGeometry 构造函数会尝试访问某些窗口句柄?我该如何解决这个问题?
我正在使用 .NET 框架 4.0,并且代码在 VS2010 和 VS2012 上都会抛出。