1

我一直在寻找2天的答案,我真的被困住了!我找到了这个问题,但答案不起作用。

我有一个 jscript 类,WorkerClass它有一个函数,PerformCalculation需要在单独的线程上运行,因为它不能在 UI 线程上运行。

这是我的解决方案:

CallerClass

private function PerformCalculation() {
    var workerClass = new WorkerClass(parameter1, parameter2, parameter3);
    var workDelegate : ThreadStart = new ThreadStart(workerClass.PerformCalculation);
    var workerThread : Thread = new Thread(workDelegate);
    workerThread.Start();
    workerThread.Join();
}


我尝试了一些事情,例如:

  • PerformCalculation函数放入CallerClass
  • PerformCalculation函数放在一个单独的类中,即WorkerClass
  • 使PerformCalculation函数private,publicstatic没有访问修饰符(默认)
  • var workerThread : Thread = new Thread(workerClass.PerformCalculation);

在前三个场景中,我得到了以下编译时错误:

Delegates should not be explicitly constructed, simply use the method name

最后一种情况给出了以下编译时错误:

More than one constructor matches this argument list


您认为我的代码有什么问题,我该如何解决?

提前致谢!

4

1 回答 1

1

我认为错误消息清楚地说明了需要做什么:要构造一个委托,不要使用new

var workDelegate : ThreadStart = workerClass.PerformCalculation;
于 2012-07-31T08:47:30.007 回答