2014-02-13 4 views
2

В чем разница между приведенными ниже двумя частями кода?Разница между потоком (методом) и потоком (новый параметр ParameterizedThreadStart (метод))

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

Не знаете, почему это было проголосовано «вне темы» ... Если этот вопрос не по теме, я не знаю, что это такое. –

ответ

3

Там нет никакой разницы. Компилятор неявно преобразует new Thread(DoMethod) в new Thread(new ParameterizedThreadStart(DoMethod)). Неявное преобразование группы методов в делегат с совместимой сигнатурой было введено в C# 2; перед этим вам пришлось использовать явную форму.

Смежные вопросы