Является ли это разумным способом добавления асинхронных функций в интерфейс IDbCommand?Отсутствие функциональности асинхронного интерфейса IDbCommand
public async static Task<IDataReader> ExecuteReaderAsync(this IDbCommand self) {
DbCommand dbCommand = self as DbCommand;
if (dbCommand != null) {
return await dbCommand.ExecuteReaderAsync().ContinueWith(task => (IDataReader)task.Result);
} else {
return await Task.Run(() => self.ExecuteReader());
}
}
В частности, я не совсем уверен, что эффект от использования «ContinueWith» подделать ковариация «задачи».
Кроме того, в маловероятном случае, когда входящий экземпляр «self» не наследуется от DbCommand, будет ли поток потока потока использоваться и блокироваться во время выполнения «self.ExecuteReader()»?
Вот a link к моей полной реализации расширений IDb для поддержки async.
Спасибо
Вы собираетесь разместить свою библиотеку как пакет nuget? – binki