It depends on what you are trying to do.
If you are looking for a specific item, you can sometimes use the navigation (accNavigate) to get to the item faster, rather than viewing all the items.
If you really need to get all the items, the background thread works well.
Another option is to use the UIAutomation api, it still supports all IAccessible servers, and it has richer caching and filtering built into it. Take a look at the MSDN for IUIAutomationCacheRequest, and it uses the TreeFilter and TreeScope methods for more information. It also has a way to search for specific items if you are in a particular case.
Think of UIAutomation as an IAccessible extension. UIAutomation is available on Vista SP2 and higher.
source share