2012-07-31 80 views
1

我一直在尋找2天的答案,現在我真的被卡住了!我發現這個question,但答案沒有奏效。如何在Jscript .NET的新線程中運行方法

我有一個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功能privatepublicstatic,並沒有訪問修飾符(默認)
  • var workerThread : Thread = new Thread(workerClass.PerformCalculation);

前三情況下,我得到了下面的編譯時錯誤:

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

和最後一種情況給出了下面的編譯時e RROR:

More than one constructor matches this argument list 


你覺得是我的代碼,我該如何解決這個問題?

在此先感謝!

+0

我不知道JScript.Net的語法,但你嘗試過'var workDelegate:ThreadStart = workerClass.PerformCalculation;'? – svick 2012-07-31 07:24:32

+0

編譯好的@svick。我會嘗試運行它。謝謝。 – Sinker 2012-07-31 07:32:22

+0

它絕對按照需要@svick工作。你想複製你上面寫的答案作爲答案,所以我可以指定它作爲正確的答案。 – Sinker 2012-07-31 08:29:16

回答

1

我認爲錯誤消息說清楚需要做什麼:構建一個委託,不使用new

var workDelegate : ThreadStart = workerClass.PerformCalculation; 
相關問題