チュートリアル2をやってみた

公開:2012-07-17 05:39
更新:2020-02-15 04:37
カテゴリ:

チュートリアル2もやってみた。2点ほどチュートリアル通りにやってもうまくいかないところがあった。

一つめは「データ モデルを初期化する非同期コードを変更するには」の「5.次のメソッド実装を app.xaml.cpp に追加します。」のコード。このまま貼り付けてもコンパイルエラーになる。


            // The last continuation serves as an error handler. The
            // call to get() will surface any exceptions that were raised
            // at any point in the task chain.
            .then( [this] (concurrency::task<SyndicationFeed^> t) <--ココが間違い
        {
            try
            {
                t.get();
            }
            // SyndicationClient throws E_INVALIDARG 
            // if a URL contains illegal characters.
            catch(Platform::InvalidArgumentException^ e)
            {
                // TODO handle error. For example purposes
                // we just output error to console.
                OutputDebugString(e->Message->Data());
            }
        }); //end task chain

下記に直したらエラーが発生しなくたった。


            // The last continuation serves as an error handler. The
            // call to get() will surface any exceptions that were raised
            // at any point in the task chain.
            .then( [this] (concurrency::task<void> t)         {
            try
            {
                t.get();
            }
            // SyndicationClient throws E_INVALIDARG 
            // if a URL contains illegal characters.
            catch(Platform::InvalidArgumentException^ e)
            {
                // TODO handle error. For example purposes
                // we just output error to console.
                OutputDebugString(e->Message->Data());
            }
        }); //end task chain

2つめは手順。OnNvaigateToイベントハンドラが定義済みであるかのように書いているが実際にはオーバーライドしなくてはいけなかったこと。

MSヘフィードバックはしておいた。