1

SL5.0とEntityFrameworkを使用しています。2つのエンティティからデータを取得する必要がありますが、コールバックを介して行う方法が好きではありません。

var context = ...
context.Load(context.GetTestTemplatesSummaryQuery("OPA-3DKCL2")).Completed += (s, e) =>
    {
        var result = context.GetTestTemplatesSummary_Results;
        var result2 = ...

        context.Load(context.GetTestTemplatesSummaryQuery(result)).Completed += (s2, e2) =>
        {
             ... 
        };
    };

私はこれを行うためのエレガントな方法を探しています。

4

1 に答える 1

2

あなたがしていることは、.Net バージョン 1.0 から 4.0 に対して完全に正しいです。これが、.Net の世界で非同期プログラミングがどのように機能するかです。

.Net 4.5 では、次のような非同期プログラミング用の新しい async/await メカニズムがあります。

public async Data GetData()
{
    return await _myService.GetDataAsync();
}

コードをコンパイルすると、一連の非同期メソッドに分解されますが、開発者が記述するコードは大幅に簡素化されています。

前述のように、VS 2012 (VS 11) を使用している場合は、Silverlight 5 で await async を使用できるようにするパックをダウンロードできます。VS 2012 を使用していない場合は、現在行っていることは正確です。

于 2012-10-23T08:21:40.167 に答える