2

イテレータを使用すると、次の一般的なデリゲートが可能です。

public delegate IEnumerable<TOut> MyDelegate<TIn>(TIn param1);

C# 5.0 CTP の新しい async/await を使用すると、次のように類似のデリゲートを作成できると期待しています。

public delegate async TOut MyDelegate<TIn>(TIn param1);

この点に関して、C# 5.0 の仕様やヘルプが見つかりません。これをどのように書くことができるか、または書くことができないかどうか、そしてその理由を知っている人はいますか?

ありがとう!

4

1 に答える 1

5

asyncインターフェースの仕様ではなく、実装の詳細です。デリゲートは意味がasyncありません。

「待機可能」を返す任意のメソッド (Taskまたは などTask<T>) を で使用できますawait

したがって、「非同期デリゲート」は、Taskor Task<T>(または他の種類の待機可能) を返すデリゲート型になります。あなたの場合:

public delegate Task<TOut> MyDelegate<TIn, TOut>(TIn param1);
于 2011-12-07T01:32:25.110 に答える