Асинхронные методы в Sap .Net Connector 3
Я использую SAP .Net Connector 3.0.0.42 в своих приложениях C# .Net v4.5. Пока я могу использовать его без проблем, как это:
var destination = RfcDestinationManager.GetDestination(destinationName);
var repository = destination.Repository;
var function = repository.CreateFunction(functionName);
function.Invoke(destination);
var resultTable = function.GetTable(tableName); //This can be time consuming
Иногда есть вызовы, которые отнимают много времени, и потому что это операции ввода-вывода, я хочу сделать это async
, чтобы не блокировать поток в ожидании завершения, но Sap .Net Connector
не предоставляет никаких асинхронных методов (насколько я знаю).
Я читал о создании методов async / await и асинхронного шаблона на основе задач, но для его использования мне нужен низкий уровень async
методы распространения, верно? Например, изменение от Thread.Sleep
в Task.Delay
, Но что, если нет таких методов?
Моей первой мыслью было использовать Task.Run
но я читал, что это для операций, связанных с процессором, и используя это, он подхватит другой поток и заблокирует его, так что это не совсем async
, Кроме того, если я разрабатываю приложение asp.net, я возьму другой поток из пула, не так ли?
Итак, мой вопрос, возможно ли обернуть синхронизированные методы ввода-вывода в async
из них? Я действительно думаю, что чего-то здесь не хватает... Спасибо!
1 ответ
Похоже, что в плагине нет встроенной поддержки, но, как предлагает Case Ahr, вы можете сделать это в своем проекте.