Sap .Net Connector 3上的异步方法

4

我在我的C# .Net v4.5应用程序中使用SAP .Net连接器3.0.0.42。到目前为止,我可以像这样毫无问题地使用它:

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

有时,有些调用非常耗时,因为它们是IO绑定操作,我想将其改为async,以便在等待完成时不阻塞线程,但是Sap .Net Connector没有公开任何异步方法(据我所知)。
我了解了关于生成异步/等待方法基于任务的异步模式的内容,但是要使用它,我需要低级别的async方法来传播上去,对吧?例如,从Thread.Sleep改为Task.Delay。但是,如果没有这样的方法怎么办?
我的第一个想法是使用Task.Run,但我读到说它是用于CPU绑定操作的,使用它会选择另一个线程并阻塞它,所以它实际上不是真正的async。而且,如果我开发一个asp.net应用程序,它会从池中取出另一个线程,不是吗?
因此,我的问题是是否可能将同步IO绑定方法封装在async方法中?我真的觉得我在这里缺少什么......谢谢!
1个回答

2

看起来插件内部没有原生支持,但是正如Case Ahr 在这里建议的那样,你可以在你的项目中实现它。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接