Код: Выделить всё
private object MySynchronousOp(object param, object cmnParam)
{
//Do stuff...
return theObject;
}
private ResponseT Do(Func op, RequestT request)
{
//Do some checks, get/setup cmnParam.
return op.Invoke(request, cmnPatam);
}
public object RunMySynchronousOp(object param)
{
return Do(MySynchronousOp, param);
}
Теперь я добавляю асинхронную пару методов, подобных следующим, без изменения уже определенного метода Do():
Код: Выделить всё
private async Task MyAsynchronousOp(object param, object cmnParam)
{
//Do stuff, with awaits here...
return theObject;
}
public async Task RunMyAsynchronousOp(object param)
{
return Do(MyAsynchronousOp, param);
}
Я что-то упустил?
Редактировать: Как обратите внимание: в примере кода я использовал объект, но в реальном коде используются другие типы. Я не копировал и не вставлял реальный код по причинам, связанным с работой. В реальном коде имеется несколько методов MySynchronousOp и RunMySynchronousOp, каждый из которых имеет разные типы RequestT и ResponseT. Я просто не хотел повторять или изобретать что-либо из этого здесь, и, насколько мне известно (хотя я могу ошибаться, я полагаю), это не влияет на суть моего вопроса.
Подробнее здесь: https://stackoverflow.com/questions/798 ... c-properly
Мобильная версия