我在我的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
方法中?我真的觉得我在这里缺少什么......谢谢!