Re: Multithreading?

From: Christoph Basedau (e_tonne_at_hotmail.com)
Date: 06/20/04


Date: Sun, 20 Jun 2004 22:52:30 +0200

20.06.2004 19:39, Michael Stum schrieb:

> ich habe eine .js Datei, also ein JScript/Wscript, welches ich mit dem
> csript Programm ausführe.
> Das Problem: Es existiert ein Array aus ~3700 Elementen, welches in einer
> For-Schleife nach und Nach abgefragt wird.
> Leider dauert das *SEHR* lange bis die Schleife durch ist.
> Daher meine Frage: Kann der Windows Scripting Host auch Multithreading? Oder
> kann ich sonstwie mehrere Elemente GLEICHZEITIG prüfen?

WSH kann kein Multithreading. Skripte verwalten zwar durchaus mehrere
threads, aber das läuft jenseits der User-Kontrolle ab.
Mit IE/HTA als Host könntest Du allerdings über window.setTimeout durchaus
sychrones Abarbeiten verscheidener Bereiche desselben Arrays
triggern.
In WSH bräuchtest Du dazu eine (zu entwickelnde) COM-Klasse, die das
Durchsuchen übernimmt, Events unterstützt und sich nach Durchsuchen
mit dem Ergebnis 'zurückmeldet'. Von der könnte man mehrere Instanzen
createn und denen unterschiedliche Bereiche um Durchsuchen
überlassen.
In Ermangelung so einer Klasse könntest Du Dir einen anderen Such-Algorithmus
ersinnen, oder ein anderes Objekt zur Verwaltung der Daten verwenden, z.B.
ein (verbindungsloses) ADO-Recordset und dessen Find-Methode verwenden,
die vermutlich schneller finden kann als eine for-Schleife über
ein dröges WSH-Array.

-- 
Gruesse, Christoph