試圖傳遞函數,而不是lambda表達式創建任務終於混了,爲什麼行:沒有拉姆達
int t2 = await Task.Run(()=>Allocate2());
不會引發錯誤。此lambda表達式()=>Allocate2()
不返回Task
。爲什麼沒有錯誤?
如何在沒有lambda表達式的情況下創建任務Allocate
?
static async void Example()
{
int t = await Task.Run(Allocate);
int t2 = await Task.Run(()=>Allocate2());
Console.WriteLine("Compute: " + t);
}
static Task<int> Allocate()
{
return 1;
}
static int Allocate2()
{
return 1;
}
['Task.Run'](https://msdn.microsoft.com/en-us/library/hh195051(v = vs.110).aspx)return'Task'。這個任務在裏面做的是另一個故事(參見重載)。 – Sinatr
運行這個我得到這個錯誤'不能隱式地將類型'int'轉換爲'System.Threading.Tasks.Task''因爲你的返回類型不匹配。但是你想要達到什麼目標呢? –
我試圖在不使用lambda表達式的情況下運行任務 – vico