У меня есть цикл for, который должен преобразовывать вещи в тысячи файлов, которые не зависят друг от друга. Код написан на JScript. Я хотел бы добавить несколько потоков кода для распределения файлов между процессорами, так как другие, кажется, простаивают. Я пытаюсь использовать класс System.Threading.ThreadPool, в частности метод QueueUserWorkItem, в JScript, но во время выполнения выдает ошибку, которая говорит:
Unhandled Exception: System.InvalidCastException: Unable to cast object of type 'Microsoft.JScript.Closure' to type 'System.Threading.WaitCallback'.
Вот мой код:
var conv = function MyConverter(arg1)
{
// do the work
};
ThreadPool.QueueUserWorkItem( WaitCallback(conv) );
Если я изменю свой код на «новый WaitCallback (conv)», я получу ошибку компилятора jsc.exe:
error JS1258: Delegates should not be explicitly constructed, simply use the method name
Итак, я попробовал это с:
ThreadPool.QueueUserWorkItem( conv );
Но затем мы вернулись к тому же исключению InvalidCastException выше.