We have been seeing consistent CPU consumption in an actively updated XamDataGrid coming from the automation peers in the UI automation infrastructure. Today my processor is melting down while RecordListGroupAutomationPeer and RecordAutomationPeer call IsOffscreenCore (see attached profile).
It isn't clear to me why the automation peers are spinning up in the first place, I don't believe I have any software or settings enabled that should cause them to be created. I have no interest in UI automation support and it is only causing problems. We were able to successfully suppress errors in the XamDataTree's peers by this trick below, but it does NOT work with the XamDataGrid. It appears the child peers are being created outside the path of XamDataGrid.OnCreateAutomationPeer():
protected override AutomationPeer OnCreateAutomationPeer() { return null; }
Are there any other options for suppressing the UI automation infrastructure from spinning up when I explicitly desire to suppress it?
We are currently running 15.1.20151.2016 due to performance problems that were introduced in the last 15.1 SR following that build (and presumably exist in 15.2; that issue is open and continues to be investigated).
Hi rastedt,
Any kind of screen reading software can cause the automation peers to be created. Even running the application in a virtual machine through remote desktop will count towards this. Take a look at the following forum thread, does it sound familiar? http://ko.infragistics.com/community/forums/t/102157.aspx
You can try setting that static property to see if it helps at all.
Spot on! In my particular example I was remoting in via RD. This property is exactly what I'm after, I will give this a try.
Thanks for the prompt response!
Np. Just let me know how that turns out once you have tested it.
Just checking in to see how things turned out after using that static property. Did it resolve your automation issue?
Your suggestion did not completely solve the issues, but works great in tandem with the OnCreateAutomationPeer() override.
Thanks!