SSIS 作业可以异步吗?

Gar*_*yle 4 ssis async-await

我对这些async方法是否在SSIS 作业中正常工作感到有些困惑。脚本任务项创建一个面向 .NET Framework 4.5 的 Visual Studio 项目,输出类型为类库。

如果我创建 main 方法public async void Main()并在其中await调用async方法,它真的在等待吗?

我在这里看到的一些帖子暗示它确实如此,而另一些则暗示它没有。

Fer*_*pux 6

不幸的是,SSIS 框架和基本的 .Net 类是在 4.5 框架及其异步执行模型之前创建的。您必须按照声明的方式实现 SSIS 方法;声明是经典的而不是异步的。
当我需要在 SSIS 脚本或自定义组件中调用一些异步方法时,我会像这样使用 Task.Run 包装器

mRes=Task.Run(async () =>
    await AsyncMethod(...).ConfigureAwait(false)).Result;  
Run Code Online (Sandbox Code Playgroud)

也许这不是最好的方法,但它允许AsyncMethod在 ThreadPool上运行。
您从asyncSSIS 中的调用中获益很少,因为 SSIS 框架本身不是异步就绪的