Projekcja za pomocą asynchronicznego delegata / lambda

Poniższy kod nie zostanie skompilowany z Async CTP w Visual Studio 2010:

Enumerable.Range(1, 5).Select(async x =>
{
    await TaskEx.Delay(100);
    return 5;
});

Błąd kompilacji jest następujący:

Test.cs(40,13): error CS1928: 'System.Collections.Generic.IEnumerable<int>' does not contain a definition for 'Select' and the best extension method overload 'System.Linq.Enumerable.Select<TSource,TResult>(System.Collections.Generic.IEnumerable<TSource>, System.Func<TSource,TResult>)' has some invalid arguments
Test.cs(40,49): error CS1503: Argument 2: cannot convert from 'lambda expression' to 'System.Func<int,int>'

Jednak w moim czytaniu powinny się tutaj pojawić następujące informacje:

PrzeciążenieIEnumerable<TResult> Select<TSource, TResult>(this IEnumerable<TSource> source, Func<TSource, TResult> selector) należy użyć.Jako.Range(1, 5) jestIEnumerable<int>, TSource jestintDokonywanie asynchronicznej lambdy, przyjmowanieint i wracamint powinien produkowaćTask<int>, które są CzymTResult powinno być.

Nie widzę tutaj problemu ze składnią. Jaki jest problem?

Pamiętaj, że nie mogę jeszcze używać VS11, ponieważ moja główna aplikacja wymaga narzędzi Azure.

EDYTOWAĆ: To działa dobrze zmsbuild w linii poleceń, ale nie w VS2010. Wydaje się, że w wierszu poleceń używany jest kompilator VS11, mimo że celuję w .NET 4.0, podczas gdy VS2010 używa własnego kompilatora wewnątrzprocesowego. Czy ktoś wie, jak zamienić kompilator, którego używa VS2010?

questionAnswers(0)

yourAnswerToTheQuestion