谁能帮我用多个下载线程更新单个 UI 线程?在 C# 中使用 WinRT。
我目前正在使用 Task.Run。它可以工作,但由于它传播到多个线程处理,程序无法正确更新单个 UI。
方法 UpdateRSSItemAsync() 下载绑定到 UI (ListView) 的内容(它将更新 RSSItemList)。
谢谢,
程序按顺序运行良好
// Run multiple tasks in sequential order
foreach (SyndicationItem item in CurrentFeed.Items)
{
if (m_bDownloadInterrupted)
break;
RssItemList = await UpdateRSSItemAsync(CurrentRSSDataGroup, RssItemList, CurrentFeed, item);
}
但是,如果在多个线程中运行,则无法更新 UI
// Run multiple tasks in multiple threads
foreach (SyndicationItem item in CurrentFeed.Items)
{
if (m_bDownloadInterrupted)
break;
RssItemList = await Task.Run<List<RSSItem>>(async () =>
{
RssItemList = await UpdateRSSItemAsync(CurrentRSSDataGroup, RssItemList, CurrentFeed, item);
return RssItemList;
});
}