2014-02-13 88 views
2

下面兩段代碼有什麼區別?Thread(method)和Thread(new ParameterizedThreadStart(method))之間的區別

Foo parameter = // get parameter value 
Thread thread = new Thread(new ParameterizedThreadStart(DoMethod)); 
thread.Start(parameter); 

Foo parameter = // get parameter value 
Thread thread = new Thread(DoMethod); 
thread.Start(parameter); 


private void DoMethod(object obj) 
{ 
    Foo parameter = (Foo)obj; 
    // ... 
} 
+0

相同............ –

+1

無。還要別的嗎? –

+1

不知道爲什麼這被評爲「脫離主題」......如果這個問題不是關於SO的話題,我不知道是什麼。 –

回答

3

有沒有區別。編譯器隱式地將new Thread(DoMethod)轉換爲new Thread(new ParameterizedThreadStart(DoMethod))。在C#2中引入了將方法組隱式轉換爲具有兼容簽名的委託;在此之前,你必須使用明確的形式。

相關問題