SSIS作业可以异步吗?

时间:2019-04-05 17:39:44

标签: ssis async-await

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

如果我使主方法public async void Main()并在其内部对await方法进行了async调用,它真的在等待吗?

我在这里看到的一些帖子暗示确实如此,而其他帖子暗示事实并非如此。

1 个答案:

答案 0 :(得分:1)

不幸的是,在4.5 Framework及其异步执行模型发展之前,就已经创建了SSIS Framework和基本.Net类。您必须实现声明的SSIS方法。该声明是经典的而不是异步的。
当我需要在SSIS脚本或自定义组件中调用一些异步方法时,可以使用Task.Run包装器

mRes=Task.Run(async () =>
    await AsyncMethod(...).ConfigureAwait(false)).Result;  

也许这不是最好的方法,但是它允许在ThreadPool上运行AsyncMethod
您无法从SSIS中的async调用中受益,因为SSIS框架本身不是 async-ready