Код: Выделить всё
public static async Task GetModelFromSchemaAsync (SqlConnection connection, CancellationToken cancellationToken = default)
{
var model = new Model();
using (var dataTable = await connection.GetSchemaAsync("MetaDataCollections", cancellationToken))
{ ... /* Logic */ ...}
return (model);
}
Код: Выделить всё
public static Model GetModelFromSchema (SqlConnection connection)
{
var model = new Model();
using (var dataTable = connection.GetSchema("MetaDataCollections", cancellationToken))
{ ... /* Logic */ ...}
return (model);
}
Я видел примеры людей, применяющих следующий подход:
Код: Выделить всё
public static Model GetModelFromSchema (SqlConnection connection)
{
// The asynchronous method is being called synchronously (without `await`).
var task = MsSqlServerAdoSchema.GetSchemaAsync (model1, connection, CancellationToken.None);
var model = task.GetAwaiter().GetResult();
return (model);
}
- Правильно ли реализован третий метод (для вызова async версия при блокировке текущего потока), или мне следует следить за какими-либо ошибками!?
- В дополнение ко второму и третьему методам, описанным выше, есть ли лучший способ обеспечить синхронность обоих
- code> и асинхронные версии таких методов без дублирования логики?
Подробнее здесь: https://stackoverflow.com/questions/790 ... ame-method
Мобильная версия