C# wpfui自动化问题
这根线属于 我在问我需要从哪里插入变通方法 我有一个WPF应用程序,它在Windows 7的某些客户端上存在性能问题。在Windows XP上,一切都运行得很快。该应用程序有一个MainShell和一些子窗口。主外壳有时挂在某些机器上,子窗口也是如此。现在,我必须在所有窗口中从上面链接的线程中插入变通方法吗?C# wpfui自动化问题,c#,wpf,performance,ui-automation,C#,Wpf,Performance,Ui Automation,这根线属于 我在问我需要从哪里插入变通方法 我有一个WPF应用程序,它在Windows 7的某些客户端上存在性能问题。在Windows XP上,一切都运行得很快。该应用程序有一个MainShell和一些子窗口。主外壳有时挂在某些机器上,子窗口也是如此。现在,我必须在所有窗口中从上面链接的线程中插入变通方法吗? 还有其他的解决方法吗?在我的例子中,它通过将代码添加到主窗口来工作。但是,我简化了一点: public partial class MyMainWindow : Window {
还有其他的解决方法吗?在我的例子中,它通过将代码添加到主窗口来工作。但是,我简化了一点:
public partial class MyMainWindow : Window
{
public MyMainWindow() {
GotFocus += WindowGotFocus;
}
private void WindowGotFocus(object sender, RoutedEventArgs e)
{
WindowInteropHelper helper = new WindowInteropHelper(this);
var mainWindowAutomationElement = AutomationElement.FromHandle(helper.Handle);
Automation.AddStructureChangedEventHandler(mainWindowAutomationElement, TreeScope.Element,
delegate {});
GotFocus -= WindowGotFocus;
}
}
在我的机器中,这种方法的唯一问题是调试器窗口中充斥着如下消息:
- PresentationCore.dll中首次出现System.Windows.Automation.ElementNotAvailableException类型的异常
- UIAutomationClientsideProviders.dll中发生类型为“System.ArgumentException”的第一次意外异常
- mscorlib.dll中首次出现类型为“System.NotSupportedException”的异常
- UIAutomationClient.dll中首次出现类型为“System.ComponentModel.Win32Exception”的异常
所有这些都发生了很多次。我无法修复这些消息,但我的应用程序现在运行得更快。我一直在开发一个应用程序,该应用程序在几乎所有方面都很好,但某些笔记本电脑(联想)上的WPF控件速度较慢。这是滞后和冻结,并普遍抑制使用 我做了以下工作:
也许只需要3号,但它奏效了。只是在这里发布,这样人们就不会失去我在内存分析器等中失去的日子。我现在已经确定,进程asghost.exe导致了我的问题。当我杀了这个,一切都很好。