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/await 方法基于任务的异步模式的信息,但是要使用它,我需要低级别async的方法来向上传播,对吗?例如,从 更改Thread.SleepTask.Delay。但是,如果没有这样的方法呢?

我的第一个想法是使用Task.Run,但我读到它是用于 CPU 绑定操作,并且使用它会拾取另一个线程并阻止它,所以它不是真的async. 另外,如果我开发一个 asp.net 应用程序将从池中获取另一个线程,不是吗?

所以,我的问题是是否可以将同步 IO 绑定方法包装在async其中?我真的认为我在这里遗漏了一些东西......谢谢!

4

1 回答 1

2

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

于 2018-04-16T06:12:17.633 回答