2013-09-05 59 views
3

我目前正在編寫一個使用async..await-Pattern執行異步任務的類。 在這裏面我有一個像這樣的方法:在編譯服務器上編譯async..await時無效令牌'void'

public async void DoSomething() { 
    ... 
    await SomeObject.DoYourThingAsync(); 
    ... 
} 

對於參考:項目設置爲使用.NET框架4.5和我使用VS2012。 在我的機器上它編譯和工作得很好,但是當我檢查到TFS時,構建會在函數的聲明中生成一個錯誤。 消息是:類,結構或接口成員聲明中的無效標記'void'

+1

嘗試將'void'更改爲'Task'。 –

+0

您的構建服務器不理解'async'修飾符,因此當它到達'async'關鍵字時,它假定它是一個類型的名稱,並且期望以下標記是字段,屬性或方法的名稱它會拋出一個錯誤,因爲它會得到一個保留字'void')。 – Groo

+0

您是否已經在構建服務器.Net Framework 4.5中安裝? –

回答

4

看起來您的構建服務器不理解C#5語法。對於C#4編譯器async void(或async Task)看起來像您指定了兩種返回類型。

重新配置服務器上的構建以使用C#5語法或較新版本的編譯器。