使用に同意するものと見なされます。コード提供終了済みコンテンツ申し訳ありません。リクエストされたコンテンツは削除されています。自動的にリダイレクトされます。公開した情報のアーカイブです。オートメーションするアプリケーションをマルチスレッドで作成する際の注意点について記載します。重い処理を実行させているときや、ループ処理などでマルチスレッドから大量の呼び出しを行うと、エラーが発生することがあります。この動作については、以下の弊社公開資料で解説していますが、開発者の皆様に知って頂く機会を増やすとともに、図等を用いてより親しみやすい内容でご案内するため、今回、本記事でも取り上げたいと思います。採用されることが多いと思います。メッセージとしてキューイングされます。オブジェクトの処理が実行されます。マンション内の各部屋、とイメージすると分かりやすいかと思います。マンションのようなものです。ありマンションを訪れると、まずは管理人に用件を伝えます。取次は、すべてこの管理人を通して行われます。訪問者が直接部屋を訪問することはできません。人しかいないので、各部屋の住人に順次訪問者の用件を取り次いでいきます。このため、訪問者が多いとすぐに用件を受け付けてもらえなかったり、後で出直してきてね、と言われることもあるのです。このような状況が、次の項目で記載するエラー発生時には起きています。参考資料)STAの詳細については以下の公開資料をご参照ください。(これらのエラーコード自体は汎用的なものですので、他の原因で生じることもあります)。陥るシナリオとして、例えば以下のようなケースが考えられます。生じるとは限りません。生じることもあります。マンションの例で言えば、管理人が優先度の高い訪問者の対応をしていたり、対応待ちの列が長すぎたりすると、新たな訪問者は追い返されてしまうこともあるわけです。ついて、検討できる対処方法はそれほど多くはありません。呼び出しを行わないよう変更することです。グラウンドで行わず、特定のスレッドでシーケンシャルに行います。COMExceptionが発生したら、時間を空けてリトライするような処理を実装することです。プロセスで複数のファイルが開かれるとご案内しているとおり、プログラムからの処理中にユーザー操作などで他の処理要求が行われることを完全に防ぐことはできません。呼び出しが行われても、同様に受け付けられません。ダイアログの例であれば、いつ閉じられるかはユーザー次第なのでどれくらいリトライすべきかの判断も難しいところです。処理の仕組みについて考慮頂きたいということです。ダイアログでユーザーに注意を促すなどの対応をご検討ください。以下の資料にも記載がございますので、参考までにご案内します。再入可能性とスケーラビリティ今回の投稿は以上です。作成日時点でのものであり、予告なく変更される場合があります。