Ich habe eine 'for'-Schleife, die Dinge in Tausenden von Dateien umwandeln muss, die nicht voneinander abhängen. Der Code ist in JScript geschrieben. Ich würde gerne etwas Threading-Code hinzufügen, um die Dateien auf die CPUs zu verteilen, da die anderen scheinbar im Leerlauf sind. Ich versuche, die Klasse System.Threading.ThreadPool, insbesondere die QueueUserWorkItem-Methode, in JScript zu verwenden, erhalte aber zur Laufzeit eine Fehlermeldung, die lautet:
Unhandled Exception: System.InvalidCastException: Unable to cast object of type 'Microsoft.JScript.Closure' to type 'System.Threading.WaitCallback'.
Hier ist mein Code:
var conv = function MyConverter(arg1)
{
// do the work
};
ThreadPool.QueueUserWorkItem( WaitCallback(conv) );
Wenn ich meinen Code so ändere, dass ich "new WaitCallback(conv)" aufrufe, erhalte ich diesen jsc.exe-Compilerfehler:
error JS1258: Delegates should not be explicitly constructed, simply use the method name
Also habe ich das mit versucht:
ThreadPool.QueueUserWorkItem( conv );
Aber dann sind wir wieder genau die gleiche InvalidCastException oben.