テスターですが何か?

ホビープログラマ略してHPです

WCF Data Servicesを試してみた(4)

leave a comment »

前回のエントリで載せたソースはウソでした。あのソースは動きません...なぜかはわかりませんがラムダ式で非同期にLinqを実行できませんでした。なので、以下のようにLinqクエリが実行完了したときに呼び出されるコールバックメソッドを定義しておく必要があります。

private void InitDisplay()
{

    // 画像のルートURL取得
    var ImagePathQuery = (DataServiceQuery<ImagePointer>)
                           from i in context.ImagePointer
                           where i.ServiceID == "2"
                           select i;

    ImagePathQuery.BeginExecute(ImagePathQueryCompleted, ImagePathQuery);

}

private void ImagePathQueryCompleted(IAsyncResult result)
{

    Dispatcher.BeginInvoke(() =>
    {

        var query = (DataServiceQuery<ImagePointer>)result.AsyncState;
        List<ImagePointer> ImagePathList = query.EndExecute(result).ToList();

    });

}

なんでSilverlightってこう非同期処理ばかりだろう...

Written by david9142

2010年10月26日 @ 12:46 AM

カテゴリー: ASP.NET

Tagged with ,

コメントを残す

以下に詳細を記入するか、アイコンをクリックしてログインしてください。

WordPress.com ロゴ

WordPress.com アカウントを使ってコメントしています。 ログアウト / 変更 )

Twitter 画像

Twitter アカウントを使ってコメントしています。 ログアウト / 変更 )

Facebook の写真

Facebook アカウントを使ってコメントしています。 ログアウト / 変更 )

Google+ フォト

Google+ アカウントを使ってコメントしています。 ログアウト / 変更 )

%s と連携中

%d人のブロガーが「いいね」をつけました。