1

試す前にこれを確認したかったのです。スレッド内のデータベースからデータをフェッチする必要があるいくつかのスレッドに取り組んでいます。現在、私が見たすべてに基づいて、スレッド内から新しいデータベース接続 (TADOConnection) を作成しています。スレッドの外部のどこかから接続オブジェクトを取得できれば素晴らしいことを除いて、すべて正常に動作します。基本的に、スレッドの実行ごとに新しい TADOConnection を作成し続けたくありません。

スレッドの外側で TADOConnection プロパティを公開して (スレッドの作成時に割り当てる)、その接続をスレッド内で使用することはできますか? あとは、スレッド内で TADODataSet を作成し、その接続をこの TADOConnection に割り当てるだけです。特に、スレッドで ADO を操作するときに CoInitialize と CoUninitialize を呼び出す必要があるため、これについては少し疑問があります。

4

1 に答える 1

1

答えはノーのようです。(およびその他の ADO コンポーネント) は COM ベースであるため、TADOConnectionスレッド間で渡すことはできません。TADOConnectionしたがって、この場合、各スレッド内で新しい from を作成するしかありません。実行を継続するスレッドは、ループするたびにこの接続を使用しますが、単一実行スレッドは一度しか使用しません。

于 2011-11-10T22:51:52.223 に答える