誰かが私が複数のダウンロードスレッドで単一のUIスレッドを更新するのを手伝ってもらえますか?WinRTを使用したC#で。
現在、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;
});
}