私はSharpBITS(http://sharpbits.codeplex.com/)を使用しています。これは、.NET用の適切に実行されているBITSラッパーです。よくわかりませんが、BITSはシングルスレッドアパートメント(STA)で実行する必要があると思います。古いバージョンでは、たとえば.NETコンソールアプリケーションのデフォルトであるマルチスレッドアパートメント(MTA)でBITSを実行するときに、いくつかの問題が発生しました。それについては、BITSのドキュメントやインターネットでは何も見つかりません。
SharpBITSでさえ、BitsManagerのコンストラクターでアパートメントの状態をSTAに設定しようとします(実際には、スレッドが開始される前にのみ可能です)。
BITSが本当にSTAで実行されなければならないかどうか誰かが知っていますか?現在のバージョンはMTAでも実行されるようです。