Seth, Josh,

The reason I have not used timers is because I can´t. The algorithms I
am executing are not decomposable into discrete steps without titanic
efforts. Evaluation of bitmap indexes in memory for intense relational
algebra stuff.

I do have a class that encapsulates a pseudo-thread and allows me to
process chunks... it goes a long way to support a hierarchical stack
for recursion, facilities to manage context between calls, timers, and
a even a way to plug into the suspend background processing stuff in
the framework so it yields nicely to effects.

But, it won´t do the trick this time.

So, back to the multithreading... Is it totally impossible?

Thanks,
Aldo

On Nov 19, 2007 8:43 PM, Josh VanderBerg <[EMAIL PROTECTED]> wrote:
>
>
>
>
>
>
> I'd have to agree with Seth, though I would suggest using a timer, as
>  the setInterval function appears to be deprecated.
>
>  In the past I've actually written a light weight class that
>  encapsulated the timer logic and handled storing state between
>  function calls.
>
>  --
>  Josh Vanderberg
>  vanderblog.typepad.com - Flex blog and open source flex components
>
>
>
>  --- In [email protected], "Aldo Bucchi" <[EMAIL PROTECTED]> wrote:
>  >
>  > Hi Guys,
>  >
>  > I need to run an expensive computation in the background ( 2 seconds
>  > on a modern day laptop ) while keeping the UI responsive. For this
>  > matter I have tried creating a secondary application and communicate
>  > with it in a non-blocking way. I share my thoughts so far to see if
>  > anyone can help with this one.
>  >
>  > First, some approaches to create a secondary application:
>  > * Load a module at runtime
>  > * Publish a module from within a new Frame ( Gonzalez/Harui trick )
>  > * Open another SWF altogether ( seems the safest best bet to me )
>  >
>  > Some approaches to communicate between apps:
>  > * LocalConnection ( sync )
>  > * Write/Poll a LSO ( async )
>  >
>  > And to go from blocking to non-blocking communication ( maybe )
>  > * Upon receiving a call start a timer and listen for the completion
>  > event. This should make the call return while leaving it up to events
>  > to start the real processing.
>  >
>  > Now, I haven't tried every combination yet, but so far I found some
>  > interesting results:
>  >
>  > I created two separate applications that talk through a
>  > LocalConnection. They use the timer trick ( upon receiving a call they
>  > set up a very short internal timer that will eventually start internal
>  > execution of the code ). If I open both SWFs in IE they effectively
>  > work as expected. I can start a very heavy computation on the
>  > secondary app while the first remains totally responsive to user
>  > events. Then I can make a reverse call and pass the results back. So
>  > far so good :)
>  >
>  > Firefox, however, is a show killer. No matter how I open the two apps
>  > ( tabs, apps, etc ) blocking occurs.
>  >
>  > Can someone from the flash player shed some light on this?
>  > This is not real multi-threading, it is simpler in the sense that I
>  > don't need synchronization. The contract is passing an input and
>  > waiting for a result.
>  >
>  > Now, even if I managed to pull this off with parallel applications...
>  > how would I materialize that setup in AIR?
>  >
>  > Thanks,
>  > Aldo
>  >
>  >
>  >
>  > --
>  > :::: Aldo Bucchi ::::
>  > +1 858 539 6986
>  > +56 9 8429 8300
>  > +56 9 7623 8653
>  > skype:aldo.bucchi
>  >
>
>
>  



-- 
:::: Aldo Bucchi ::::
+1 858 539 6986
+56 9 8429 8300
+56 9 7623 8653
skype:aldo.bucchi

Reply via email to