我需要創建一個函數,它將返回將在另一時間執行的任務。如何創建新的任務<T>(async()=> {return new T();});?
我想爲該任務返回一個值(最好通過await
)。
我還希望能夠在該任務中使用await
方法/函數。
當我試圖創建一個簡單的概念上的函數,它應該做我想做的,我得到一個紅線錯誤消息:
private static Task<object> FooGet() {
return new Task<object>(async () => {
await asyncBar();
return new object();
});
}
錯誤讀取:Cannot convert lambda expression to type 'object' because it is not a delegate type
當我刪除來自lambda的async
關鍵字,一切都是hunky dory。
我該如何解決這個問題?我能解決這個問題嗎?
既然你需要明確地將它轉換爲
Func<Task<object>>
或你已經添加到另一個答案,我認爲這是完全可以得到upvotes。然而,如果你決定不接收它們,你總是可以添加一個答案作爲社區維基,這大部分都會從你的帖子中刪除你的所有權。 – halfer@halfer我...幾乎不知道你在說什麼。請問我有一些情況嗎? – Will
查看我對你的答案所做的修改 - 你要求人們提出另一個答案,並明確表示不是你自己的答案。我把它編輯了出來,因爲我覺得這是過度的元評論,但無論如何,我認爲你對自己是不公平的,而且如果人們願意給他們提出自己的問題,那麼你的問題就值得讚賞了。 – halfer