我有這樣GetAwaiter()方法
var results = await client
.For(x.Offices)
.Select(x.NumberOfFlores, x.Hight)
.QueryAsync();
客戶端的頂級功能是我自己的功能,做了一堆東西。 (與ODataClient客戶端類不一樣)
QueryAsync()
的結果返回一個自定義類。這個類有幾個參數,其中之一是queryResults。這個類有一個GetAwaiter()
函數,它永遠不能正常工作。
public async Task GetAwaiter()
{
await queryResults;
}
queryResults
是類型的對象Task<IEnumerable<ODataEntry>>
什麼,我希望它做的是等待queryResults來執行,所以比我可以在表單中使用它results.QueryResults
不過,我得到「await queryResults」後出現此錯誤
無法投射 類型的對象'System.Threading.Tasks.Task`1 [Sys tem.Threading.Tasks.VoidTaskResult]' 鍵入'System.Runtime.CompilerServices.INotifyCompletion'。
getAwaiter
函數確實執行,但是一旦我從它返回,我就會收到一個錯誤。
我已經嘗試了一堆不同的東西,但沒有任何工作。我究竟做錯了什麼?
爲什麼你有自己的'GetAwaiter'方法?我想你需要退後一步,問問自己你想做什麼。 '任務'不是等待者,他們是可以等待的 - 只要讓你的'QueryAsync'返回一個'Task',並且完成它。 – Luaan
我不能這樣做,因爲我需要返回多個東西,而不僅僅是一個任務。因此,我做了一個數據結構,其中包含幾個參數。其中之一是這個任務,它需要等待頂級類別調用「await」 – user2824991
@ user2824991然後,您應該等待該對象的Task屬性,而不是對象本身。 – Servy