1

私は2日間答えを探していましたが、本当に行き詰まっています!この質問を見つけましたが、答えは機能しませんでした。

UIスレッドでは実行できないため、別のスレッドで実行する必要WorkerClassがある関数、を含むjscriptクラスがあります。PerformCalculation

これが私の解決策です:

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);

最初の3つのシナリオでは、次のコンパイル時エラーが発生しました。

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 に答える