Недавно я вернулся к C# из страны Objective-C, и ключевые слова async/await в C# 5 выглядят круто. Но я все еще пытаюсь разобраться с правильным синтаксисом.
Я хочу объявить метод, который принимает асинхронный делегат в качестве параметра, но у меня возникают проблемы с правильным синтаксисом как вызывающего, так и вызываемого. Может ли кто-нибудь предоставить пример кода, показывающий объявление метода, вызов и вызов делегата?
Я думаю, что объявление будет примерно следующим. Обратите внимание, что эта функция не является асинхронной; то есть его асинхронность не зависит от делегата.
void DoSomethingWithCallback(async delegate foo(int))
{
...
foo(42);
...
}
Вызов будет примерно таким:
DoSomethingWithCallback(async (int x) => { this.SomeProperty = await SomeAsync(x); });
Конечно, ничего из этого не компилируется, и большинство примеров, которые я видел, предполагают, что у них есть поле или свойство, которое является делегатом, а не анонимным делегатом, который я хотел бы использовать.