2011-05-25 9 views
13

Task.Factory.StartNew() básicamente recibe una Acción y devuelve una Tarea. En The Async CTP tenemos TaskEx.Run() que también recibe una Acción y devuelve una Tarea. Parecen hacer lo mismo. ¿Por qué se introdujo TaskEx.Run()?Task.Factory.StartNew() vs. TaskEx.Run()

+11

TaskEx.Run ahora es Task.Run en .NET 4.5 RTM framework TaskEx era necesario como una medida temporal –

Respuesta

14

Anders Hejlsberg habló de eso brevemente en una entrevista en Channel9. Aparentemente, Task.Run es solo una abreviatura de Task.Factory.StartNew. Aún es pronto para CTP, por lo que no estamos seguros de que Task.Run lo haga int. Personalmente espero que no sea porque es algo redundante. :)

+2

Lo hizo :-) Deseo que la documentación para esto sea una abreviatura de Task.Factory.StartNew - http://msdn.microsoft.com/en-us/library/hh195051.aspx –

+8

Esto es parcialmente correcto. [Publicación del blog] (http://blogs.msdn.com/b/pfxteam/archive/2011/10/24/10229468.aspx) habla sobre qué esperar de 'Task.Run'. Especialmente en el escenario donde la acción devuelve 'Tarea ', 'Task.Factory.StartNew' devolvería una' Tarea 'que requiere un' Desenvolver 'para obtener la tarea interna donde 'Task.Run' devolvería un' Tarea 'con un desplegado implícito. – Anupam

6

Stephen Toub lo cubrió en his article. Son lo mismo, uno es la taquigrafía del otro.

Cuestiones relacionadas