*

STAThread 属性を付ける理由

公開日: : C#

STA/MTA は COM の用語です。
ものすごく簡単に言うと「OLE/COM サーバの手続き呼び出しの管理方法を決める属性のようなもの」で、スレッドに対して設定します。
で、どうして Main() に STAThread 属性をつけないと問題が発生するか、ですが、ActiveX コントロールは STA で動作させる決まりになっています。
提示されているコードではそれらを明示的に使用しているようには見えませんが、OpenFileDialog が内部で ActiveX コントロールを使用していて、Main() に STAThread 属性がないことから、OpenFileDialog.ShowDialog() で ActiveX コントロールの機能呼び出しに失敗しているものと思います。

admax_area



関連記事

no image

保護中: crystal report

crystal reportを拡張子rptのファイルを編集しようとしてやってみたが、 現段階では不

記事を読む

no image

TcpListener

using System; using System.Collections.Generic;

記事を読む

no image

EXCELをPDFに変換

EXCELをPDFに変換する方法 大量のエクセルファイルをPDFに変換する必要がでたのでTryして

記事を読む

no image

crystalreportを使わずにレポートを出す場合の覚書 ReportViewer

crystalreportを使わず、visualstudio2013proに入っているレポートを使っ

記事を読む

admax_area



Message

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

CAPTCHA


日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)

admax_area



PAGE TOP ↑