Правильно ли вызывать (маркировать) метод, возвращающий задачу как асинхронную? - PullRequest
0 голосов
/ 14 сентября 2018

У меня есть методы, предоставляемые драйвером базы данных, который переводит значение в дБ (как асинхронное, так и не асинхронное), например,

pushToDBAsync(); и pushToDB();

Итак, я создалметод-обертка для методов драйвера для моей собственной реализации, показанной ниже.Это правильно?а также правильно ли называть этот метод асинхронным?

public Task<bool> pushToDBAsync(.....)
{
    return _database.pushToDBAsync(.....);
}

Ответы [ 2 ]

0 голосов
/ 14 сентября 2018

* Если вы хотите использовать свой метод как pushToDBAsync ();поэтому следуйте приведенному ниже коду для синтаксиса метода.

public Async Task<bool> pushToDBAsync(.....)
{
return await _database.pushToDBAsync(.....);
}

* Если вы хотите использовать свой метод как pushToDB ();Итак, следуйте приведенному ниже коду для синтаксиса метода.

public Task<bool> pushToDBAsync(.....)
{
  return _database.pushToDBAsync(.....);
 // Return same but execution time more compare than Async method.
 }
0 голосов
/ 14 сентября 2018

Это асинхронный метод, так как вызывающий может его ожидать. Разница с использованием
public async Task<bool> pushToDBAsync(....)
это то, что вы даете вызывающей стороне возможность решить, как обрабатывать задачу. Подобные действия могут также помочь избежать некоторых ловушек, упомянутых в этом посте: http://blog.stephencleary.com/2016/12/eliding-async-await.html

Короче говоря: маркировка такого метода с помощью Async сообщает вызывающей стороне, что его можно ожидать, и облегчает взаимодействие с вашим кодом.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...