Я пишу какой-то новый код и хотел бы написать его с помощью async и ждать, но код вызова в настоящее время не написан в async. Правильно ли писать новый код в async и вызывать его синхронизацию, пока вызывающий код не поддерживает async?Написание нового кода в async, но вызов синхронизации
Или мне нужно написать код синхронизации, а затем преобразовать его позже? И это будет считаться техническим долгом?
public Result Execute(Paramerters parameters) {
return ExecuteAsync(parameters).Result;
}
public Task<Result> ExecuteAsync(Paramerters parameters) {
...
}
Execute
на интерфейс и вызывается из какого-либо другого кода, который еще не асинхронный. Правильно ли создавать асинхронную версию и вызывать ее с Execute
, пока код, вызывающий Execute
, не преобразуется в async? Мой старый код написан в .net 4.5.1, но еще не преобразован в async.
Я очень рекомендую придерживаться мантры «async all the down» и обновлять код сразу же. Это хорошее чтение по теме: http://blog.stephencleary.com/2012/07/dont-block-on-async-code.html Также имейте в виду, что «мы исправим оставшуюся часть позже» «подход, возможно, является самым распространенным заблуждением во всей отрасли разработки программного обеспечения. Не переполняйте вещи. Либо сделайте код асинхронным, либо нет. – David
Это называется «sync over async» и является анти-шаблоном. Это * обычно * очень плохая идея, и некоторые комбинации sync-over-async или async-over-sync могут * полностью затормозить * ... –