I think the best solution for Flash would be to introduce a first-class
thread object. That way developers could spawn long-lasting tasks to a
separate thread. Issues like Alex mentioned could be avoided by putting
restrictions on what threads could and could not do... for example, you
don't have the doEvents issue of "rentrance" without adding complications to
the code.

The Player could also put bounds on the threads, such as capping their CPU
usage and/or limiting their ability to access data outside of their owned
object (to prevent a bunch of synchronization primitives from being
introduced into the API). Essentially, allow users to create async objects
(like Loader) that can run, can update their properties, etc., fire events
(which wouldn't have thread sync issues because they can be process async'ly
like mouse events or other Player events).

I'm sure there are some wrinkles I'm overlooking, and I'm sure I'm
oversimplifying. But I think the Flash Player team will really need to
tackle the threads issue sooner rather than later if they want it to become
a platform of choice for RIA's... C# and Java already support threads 100%,
and let's not kid ourselves, Flash is competing with those platforms in many
shops.

Troy.



On 5/2/07, Alex Harui <[EMAIL PROTECTED]> wrote:

   Calllater, intervals and what not are good for long iterations.
Sometimes you want to run a deep recursion and that's harder to flatten.

The Player Team continues to reject this idea.  I think it is because it
is non-trivial to implement as it means that a mouseevent could be processed
before the mouseevent that called doEvents finishes and that makes
somethings in the player more complicated.

-Alex

 ------------------------------
*From:* flexcoders@yahoogroups.com [mailto:[EMAIL PROTECTED] *On
Behalf Of *Jim Grinsfelder
*Sent:* Wednesday, May 02, 2007 2:00 PM
*To:* flexcoders@yahoogroups.com
*Subject:* RE: [flexcoders] Why aren't we allowed to process the event
queue? (eg: like DoEvents)

  Maybe we already can tell flash to process the UI event queue...

What happens when you use CallLater() to call yourself back?

 ------------------------------

*From:* flexcoders@yahoogroups.com [mailto:[EMAIL PROTECTED] *On
Behalf Of *Tim
*Sent:* Wednesday, May 02, 2007 2:41 PM
*To:* flexcoders@yahoogroups.com
*Subject:* [flexcoders] Why aren't we allowed to process the event queue?
(eg: like DoEvents)

  Why aren't we allowed to tell flash to process the UI event queue
periodically in long executing subroutines?

Hell, just something to tell the client not to go into "Not
Responding" would be more than enough. I call "validate now"
periodically, but that doesn't help because I still get the "Not
Responding" which makes it look like the software has crashed - a very
awkward user experience.

It seems like such a trivial thing for Adobe to add. Why don't they?

Reply via email to