AI2 is single thread?

Spiegatemi per favore come funziona.
Ho una procedure che viene richiamata per riempire un dictionary.
Subito dopo la procedura, controllo il numero di elementi nella dictionary appena caricata
Mi da 0.
Se lo controllo alla fine della procedure chiamata mi da il numero giusto di elementi.
Ma non è single thread AI2?

Your example is not very clear. From what I understood, you are trying to convey that the two blocks shown below have different outputs?

(Canned Reply: ABG - Download those blocks and post them here)

Please download and post each of those event block(s)/procedures here ...
P.S. These blocks can be dragged directly into your Blocks Editor workspace.

See Download Block Images for a demo.

TY for your answer.

With Button2 I excecute a block that require some action (a msg or a file read etc.) fron others the activity return to the caller and the sequence changes. How can i manage in complex chain of procedure calling that need doing those blocks?

(Canned Reply: ABG- Export & Upload .aia)
Export your .aia file and upload it here.
export_and_upload_aia

test_procedure.aia (4.1 KB)
I think that a chaining of procedures, if there is a need to use blocks that require waiting, is not possible. Better to truncate the chain into parts that end their action when they have to use blocks that require waiting.

This is where AI2's large collection of asynchronous events come in handy.
By adding extra components named after their contexts, you can break up a sequence of actions interspersed with long running external processes.

This is needed to allow you to show progress of long running tasks.

Sierpinski Triangle:
http://ai2.appinventor.mit.edu/?galleryId=5214268554739712

Sieve of Eratosthenes
http://ai2.appinventor.mit.edu/?galleryId=6477875229491200

2 Likes

ok THANKS ABG I manage to call waiting blocks at the end of each procedure...but is very difficilt and time consuming.

That sounds wrong.

(Canned Reply: ABG - Download those blocks and post them here)

Please download and post each of those event block(s)/procedures here ...
P.S. These blocks can be dragged directly into your Blocks Editor workspace.

See Download Block Images for a demo.

Are you sure that you want to lokk at these?
Uploading: blocks (1).png...

Is still uploading...

I haven't seen any new blocks.

From your diagram, I suggest rethink your design to a factory model, where lists are the conveyor belts and event blocks pick work items off the conveyor belts, update them, and place them on the next conveyor belt.

OK I'll think about it (I am self training and I follow my schema from other programming language)
I don't know why the image can't upload. May be because is 5.25 MB?

Please, can you show me an example of this programming?
TY

Reading files is an asynchronous procedure, which means that it is performed in a different thread. Therefore, the file component has an event that is fired after reading the file. If, later in the procedure from which you call the file read, you need data from the file, you should move all further blocks from the procedure to the "file read" event.

1 Like

Yes Patryk is what i did TY. I was used in different way with other programming environments.

Here is an example using a deprecated Google service, Fusion Tables.
The architecture is similar to what would be needed for another data base.

This is an example of insertion and deletion from Fusion Tables (obsolete) through queues:

In both cases, there are multiple completion events tied together with global lists.

OK let me study for half a year :smiley: and TY again

Maybe these examples of asynchronous processing will help:
https://www.google.com/search?q=rube+goldberg+machines