Looks like quite a few people are tackling the same problems, or have at least had it in the back of their minds.
I understand the history of the flash player, what kinds of applications it's been used for, and I also understand how large an undertaking it would be to make the current Flex components thread-safe, etc. The big problem I have, and I think others have already touched on it, Flex and AIR are being marketed as the evolution of RIAs, and I honestly believe they are. But there are some pretty big hurdles to overcome to make the user experience as rich as possible, the development as painless as possible, and the RIA as powerful as possible. In my case the server is doing a TON of the work, so "offload it to the server" is already pretty much the case. That being said you can't fine tune ALL your data for a particular view. The Flex UI I'm working on is just one of the consumers of the XML data available on the server. I get a large chunk of XML, I process it, and then I need to make intelligent decisions about updating various data models and the view reacts to those changes. The problem is when all of this happens serially in event listeners, the UI is blocked. I hear a lot of suggestions to split the work up and do it in the next frame. Most of my work prior to Flex has been Java and similar languages, so I'm still getting used to the idea of thinking in frames. Can someone give me a good example of how to split this work across frames? Most of the work is being done in the result of Cairngorm commands, which aren't DisplayObjects so callLater() isn't available. Do I need to have these commands somehow listen for a frame change on the application? That seems like a very un-clean way of handling this. I've been considering some of the suggestions of using a Timer. I may create a WorkQueue where I can pass function references and parameters. Start a timer and have the WorkQueue listen for the timerEvent and process the next action. I think it'd be great to hear from more Adobe employees such as Alex about how they are currently handling problems such as this, and any possible plans for the future of Flex and AIR to handle more client-side processing. Maybe a series of blog posts are in order. Thanks again for the great responses.

