Instantiating a System.Threading.Thread object in

2019-03-06 11:53发布

问题:

I'm trying to create a new System.Threading.Thread object using Jscript, but I can't get the constructor to work. If I just do the following,

var thread = new Thread( threadFunc );

function threadFunc() {
    // do stuff
}

then I get error JS1184: More than one constructor matches this argument list.

However, if I try to coerce threadFunc to System.Threading.ThreadStart via

var thread = new Thread( ThreadStart(threadFunc) )

I get error JS1208: The specified conversion or coercion is not possible

Anyone know how to do this? It seems like it should be trivial.

回答1:

Wrap it in a class, it should work.

import System;
import System.Threading;

class MyClass {
    static function threadFunc() { Console.WriteLine("threadFunc"); }
}

var thread = new Thread( ThreadStart(MyClass.threadFunc) );
thread.Start();
thread.Join();