我已經通過從MSDN下面的示例中的WinRT的應用程序加載增量列表視圖中的縮略圖項目:增量加載在ListView
https://code.msdn.microsoft.com/windowsapps/Data-Binding-7b1d67b5
我想刪除「等待Task.Delay (10)「一行。 當我這樣做時,我得到一個警告,說明該方法缺少等待操作符。
protected async override Task<IList<object>> LoadMoreItemsOverrideAsync(System.Threading.CancellationToken c, uint count)
{
uint toGenerate = System.Math.Min(count, _maxCount - _count);
// Wait for work
await Task.Delay(10);
// This code simply generates
var values = from j in Enumerable.Range((int)_count, (int)toGenerate)
select (object)_generator(j);
_count += toGenerate;
return values.ToArray();
}
我試圖重寫方法和包裝的整個方法在任務asfollows:
protected async override Task<IList<object>> LoadMoreItemsOverrideAsync(System.Threading.CancellationToken c, uint count)
{
return await Task.Run(() => {
uint toGenerate = System.Math.Min(count, _maxCount - _count);
// This code simply generates
var values = from j in Enumerable.Range((int)_count, (int)toGenerate)
select (object)_generator(j);
_count += toGenerate;
return values.ToList<object>();
});
}
但是,我得到線程例外:
例外:應用程序調用,這是一個接口編組爲另一個線程。 (異常來自HRESULT:0x8001010E(RPC_E_WRONG_THREAD))
這似乎是我需要在UI線程上運行此?但我無法訪問調度程序。
尋找一些建議
控件上沒有* Invoke(delegate)*方法嗎? –