3
我寫了下面的代碼,.NET 4.5異步語法
Task.Factory.StartNew<int>(async() =>
{
await Task.Delay(1000);
return 42;
});
但「異步」關鍵字下的讀線出現,並且代碼不能由於一些語法錯誤編譯,有誰能夠告訴我什麼做?
Thx很多!
我寫了下面的代碼,.NET 4.5異步語法
Task.Factory.StartNew<int>(async() =>
{
await Task.Delay(1000);
return 42;
});
但「異步」關鍵字下的讀線出現,並且代碼不能由於一些語法錯誤編譯,有誰能夠告訴我什麼做?
Thx很多!
你可能想使用Task.Run
,它具有更自然的語法async
lambda表達式:
var task = Task.Run(async() =>
{
await Task.Delay(1000);
return 42;
});
你必須返回一個Task<T>
,像這樣:
Task.Factory.StartNew<Task<int>>(async() =>
{
await Task.Delay(1000);
return 42;
});
的async
關鍵字要求返回Task
,Task<T>
或void
。詳細瞭解它:async (C# Reference)。
+1不錯的一個人也沒有=) –