LoadPackage(...)を使用してSSISパッケージを呼び出しています。
この呼び出しを非同期呼び出しにすることは可能ですか?
はい、ここでデモされているように、非同期デリゲートを使用します。
1) バックグラウンド スレッドで LoadPackage を呼び出すことは合法か、2) 可能かを尋ねています。#1については、SSISフレームワークを使用していないため、決定的な答えを出すことはできません.
ただし、#2(#1が真である限り)は間違いなく実行可能です。IMHO、APIの非同期を呼び出して結果を待つように設計されたAPIを持つ既存のフレームワークを使用する方がよいでしょう。たとえば、2008 年 6 月の Parallel Extensions CTP では、次のコードで実行できます。
using System.Threading.Tasks;
...
var future = Future.Create(()=>LoadPackage); // Starts loading the package
// Do other stuff
var package = future.Value; // Wait for package load to complete and get the value
バックグラウンドで実行したいだけの場合は、スレッドをスプールするか、T-SQL を呼び出してジョブを動的に作成する (そして後で再度削除する) ことができます。非同期で実行し、完了時にコールバックが必要な場合は、残念ながら運が悪いと思います。