1

タスク間で変数を渡すのを手伝ってくれる人はいますか?

Dispatcher.RunAsync() に関するトラブルに遭遇しました。変数 RssItem を RSSItem の型として宣言します。Dispatcher.RunAsync(...) 内の await m_RSSReader.CreateRSSItem() によって返された RssItem の値を、割り当て m_RssItemList.Add(RssItem); のために外部に渡そうとしています。

RSSItem RssItem;
// Save Individual RSS items as RSSItem
foreach (SyndicationItem item in CurrentFeed.Items)
{
    //RssItem = new RSSItem();
    // by using dispatcher, it resolves the issue of lagging UI
    await Dispatcher.RunAsync(Windows.UI.Core.CoreDispatcherPriority.Normal, async () =>
        {
            RssItem = await m_RSSReader.CreateRSSItem(item.Links[0].Uri, m_CurrentRSSDataGroup, item, CurrentFeed);
        });

        if (RssItem != null)
        {
            Debug.WriteLine("RssItem Title : {0}", RssItem.Title);
            m_RssItemList.Add(RssItem);
        }
}

[7/11/12] RSSItem は私が作成したストレージ用のクラスです。Dispatcher.RunAsync() を使用して UI の中断を回避します。メソッド m_RSSReader.CreateRSSItem() は、必要なクラス (RSSItem RssItem) を返します。Dispatcher タスクの外側にそれを渡し、RssItem をリストに追加する必要があります (m_RssItemList.Add(RssItem)。しかし、RssItem を Dispatcher の外に渡すのに問題があります。

ありがとうございました、

4

2 に答える 2