Je me penche au plus vite sur la question. Merci beaucoup.
Boris
Le 23 janv. 07 à 13:08, Arnaud Nicolet a écrit :
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 ?
|