Почему тип возврата async должен быть недействительным, Task или Task

Я пытаюсь запачкать руки с помощью async CTP, и я заметил, что компилятор жалуется на тип возврата async. В чем проблема с другими типами?

Простая демонстрация

static void Main(string[] args)
{
    DoWork();
    Console.WriteLine("Returned to main");
    Console.Read();
}

// why do I need to return void, Task or Task<T> here?
// I know I can use something like Task<IEnumerable<string>>
private static async string[] DoWork()
{
    Console.WriteLine("DoWork started");
    return await Task.Factory.StartNew(
        delegate
        {
            Thread.Sleep(2000);                
            Console.WriteLine("DoWork done");
            return new List<string>();
        });        
}
13
задан Seph 10 April 2012 в 11:56
поделиться