async
- это деталь реализации, а не спецификация интерфейса.async
делегат не имеет смысла.
Любой метод, который возвращает «ожидаемый» (например, Task
или Task<T>
), может использоваться с await
.
Таким образом, «асинхронный делегат» будет любым типом делегата, который возвращает Task
или Task<T>
(или любой другой вид ожидаемого).В вашем случае:
public delegate Task<TOut> MyDelegate<TIn, TOut>(TIn param1);