Sap.Net连接器3上的异步方法

本文关键字:异步方法 Net 连接器 Sap | 更新日期: 2023-09-27 18:30:03

我在C#.Net v4.5应用程序中使用SAP.Net Connector 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我真的觉得我错过了什么。。。谢谢

Sap.Net连接器3上的异步方法

插件中似乎没有本机支持,但正如Case-Ahr在这里建议的那样,您可以在项目中完成。