realbasic-nug.fr
[Top] [All Lists]

Re: Variables dynamiques...

To: REALbasic NUG French <realbasic-nug dot fr at lists dot realsoftware dot com>
Subject: Re: Variables dynamiques...
From: Arnaud Nicolet <arnaud at tribu dot ch>
Date: Tue, 23 Jan 2007 13:08:05 +0100
Delivered-to: listarchive at realsoftware dot com
Delivered-to: realbasic-nug dot fr at lists dot realsoftware dot com
References: <FA8559B7-CD58-42A0-9263-354F673206C4 at mac dot com> <5CBC8E68-6629-4BD2-A947-404B869791EE at albireo dot biz> <0C111400-12FB-4C15-A6ED-999C2F487C3E at realsoftware dot fr> <4B9AD5A4-7887-4AB3-87B0-EB6680329836 at albireo dot biz> <478ACC93-EC1C-4FFB-AB30-0E726888792D at mac dot com> <0A07A8CA-19DF-412C-868F-15B9511298BC at albireo dot biz> <F129875E-4164-4DA5-AF2B-DCA4AE83E5EE at beaude dot net> <79B4AFFD-743A-4841-B89A-66A8393AB81A at albireo dot biz> <69CFF131-88BE-495D-BA25-DD419CBA07E8 at beaude dot net> <358ED573-57E2-43A9-8C07-E23B8E248CF7 at albireo dot biz> <588DEDFF-4825-4649-A756-F521A70128C6 at tribu dot ch> <897D631B-D8D0-45FA-BF2A-EE416F89EF4E at briq dot com> <218BD5B8-3C7E-4DA4-8437-BA3575614320 at tribu dot ch> <8646C2A5-78AF-4B1D-BEDC-222B57213F2C at beaude dot net> <BD1ADDD1-99BB-49D9-B3A5-F33A40F38A48 at tribu dot ch> <D981CB07-771E-4453-A92A-2A4C07942ECD at beaude dot net> <2556A76C-E0C4-4C16-8730-C8E4604E72F6 at tribu dot ch> <C5AF2DAD-36DE-4D4A-930D-EBE8283F762C at beaude dot net> <F39D8E3E-FF5A-485B-A5F7-ED0E4ED8C3C3 at tribu dot ch> <54437842-2A11-4407-9189-B066B685CBE4 at beaude dot net>
Le 23 janv. 07 à 10:23 Matin, Boris (Com) a écrit:

Ah, intéressant. Cela semble convenir en effet.
Mais cela ne pose pas de problèmes si les threads de AllMyThreads ont tous le même nom. Ils peuvent travailler parallèlement en ayant le même nom ?

Non. Imaginez qu'à chaque boucle, MyCurrentThread en est un nouveau (à cause de la ligne "=new MyThread"). Dans AllMyThread, on ajoute tous les MyCurrentThread (c'est une collection d'objets de type MyThread, faite justement pour contenir plusieurs de ces objets). Chaque Thread ajouté à la collection n'a pas besoin de garder la variable ("MyCurrentThread") liée à lui. Il existe simplement en mémoire et le lien pour y accéder est ensuite d'utiliser "MyCurrentThread=AllMyThreads(3)" (par exemple). Quand vous dites "ont tous le même nom", il ne s'agit pas du nom, mais de la variable (MyCurrentThread étant le nom de la variable, pour simplifier).

C'est un brin complexe (surtout que j'ai mis des parenthèses à chaque phrase). Peut-être que je pourrais vous l'expliquer autrement si je m'y suis mal pris (à vous de me le dire; tiens, encore une parenthèse).

Par ailleurs, à quoi sert le MyCurrentThread.MyWin1=self

C'était juste dans l'exemple, quand Francis Gorge a demandé comment faire un Thread. C'était fait pour lier une fenêtre au Thread. Cependant, si vous n'avez pas de fenêtre... faites une porte.

Autrement dit, c'est l'espace de configuration.
Étant donné que, au passage suivant dans la boucle, l'objet "MyCurrentThread" sera un autre MyThread, il est nécessaire de mettre les propriétés à jour tant qu'on a encore facilement l'objet en variable.

Avec toutes vos aides, j'ai hâte, à mon tour, de pouvoir vous aider un jour. Qui sait ? Mais là, c'est pas encore gagné ;-)

Je pense qu'apprendre, c'est mieux que de savoir (je médite... Si je savais m'éditer, ce serait pas mal non plus).

Bien cordialement,

Boris

Avec cordialité,

Arnaud



Le 22 janv. 07 à 21:00, Arnaud Nicolet a écrit :

Vous pouvez utiliser une variable de genre tableau:

Dim AllMyThreads() As MyThread 'MyThread étant une classe, comme vous savez
Dim i As integer
Dim MyCurrentThread As MyThread

for i=0 to 12
MyCurrentThread=new MyThread
MyCurrentThread.MyWin1=self 'Mettez toutes les initialisations nécessaires
MyCurrentThread.Run
AllMyThreads.Append MyCurrentThread 'On l'ajoute dans le tableau, pour s'en souvenir
next

MyCurrentThread=AllMyThreads(6)
MyCurrentThread.MyProperty=AnotherValue

C'est ce que vous cherchez?

Cordialement,
Arnaud

Le 22 janv. 07 à 19:59 Soir, Boris (Com) a écrit:

Rassurez-moi !
Il est possible de créer des variables dynamiques en RealBasic ?

Dans mon cas, mais je m'y prends peut-être mal, je souhaiterais lancer plusieurs traitements parallèles dans une boucle. En PHP, j'utilise Ajax pour appeler un script de multiples fois avec des paramètres différents, ce qui me permet d'utiliser pleinement la puissance de mon ordinateur. En RealBasic, j'ai utilisé un tread dans qui est appelé dans une boucle... mais bien sur, le traitement n'est pas parallèle puisqu'il s'agit du même thread (déclaration). Il faudrait donc que je puisse déclarer dynamiquement des thread à chaque incrémentation de la boucle, afin de lancer plusieurs thread parallèlement !

Or, je ne vois pas comment créer dynamiquement des Thread !!! Ex Dim thread_$x As nomduthread dans une boucle qui fait évoluer $x.

C'est probablement pas la bonne solution, mais je ne vois ni comment faire cela, ni comment faire autrement ?








<Prev in Thread] Current Thread [Next in Thread>