問題タブ [apartment-state]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
0 に答える
1398 参照

c# - C# Windows アプリケーションのメイン プログラムで現在のスレッド アパートメントを STA に設定できない

Visual Studio 2010 で小さな Windows アプリケーション プロジェクトを作成しましたが、メイン スレッドのアパートメント プロパティを STA に設定できません。プロパティ[STAThread]または[STAThreadAttribute]メイン メソッドでも、デフォルトで MTA に設定されています。これにより、フォームを表示してそのコントロール プロパティを変更すると、例外が発生します。

これは、メイン スレッドApartmentSateプロパティの値を表示し、それを STA に変更しようとするアプリケーション エントリ ポイントのスクリーンショットです (私のアプリケーションではこれを行いません。誰かが変更を提案した場合に何が起こるかを示すためだけです)。それはプログラム的に):

メイン スレッドの ApartmentState プロパティが MTA に設定されている

以下は、デバッグ セクションのアプリケーション プロパティのスクリーンショットです。

アプリケーションのデバッグ プロパティ

メインスレ離れてないから分からん この問題の原因と解決方法を教えてください。

編集:「Visual Studio ホスティング プロセスを有効にする」オプションを無効にすると、ApartmentSateプロパティは正しく STA に設定されます。問題を回避する最善の方法ですか、それともより良い解決策でこれを修正できますか?

ありがとうございました

0 投票する
1 に答える
1448 参照

c++ - 現在のスレッドの COM アパートメントの状態を照会する方法

.NET Thread クラスには、スレッドのコンテキストのアパートメントを返す便利な関数 GetApartmentState() があります。ネイティブ コード (C++、C) 用の同様のCo<something-something>関数はありますか? ほぼ 10 年間 COM をプログラミングしてきたので、知っておくべきだと思いますが、答えが見つかりません。

0 投票する
3 に答える
1350 参照

c# - C# Application.Run() を使用するスレッドをシャットダウンする

コードにアクセスできる C# DLL を使用しようとしていますが、実際にコードを変更してカスタム バージョンをビルドすることはできません。呼び出しコードは C# WinForms プロジェクトであり、C# DLL も WinForms を使用して Windows システム イベントを処理します。問題は、DLL がバックグラウンド スレッドを使用してその内部で Application.Run() を使用し、そのスレッドを強制終了または停止する組み込みの方法があることです。コードのスニペットを次に示します。

どうやらそれを殺すことが期待される方法は、Application.Exit() を使用することですが、それは自分の WinForms プロジェクトも終了します。これは私が望んでいることではありません。Application.Exit() を呼び出さずにアプリケーションを閉じると、DLL はバックグラウンドで実行され続けます。DllClass オブジェクトをインスタンス化して使用し、完了したらシャットダウンできるようにしたいと考えています。実行中のスレッドの Thread オブジェクトを取得するメソッドを思いつきましたが、それに対して Thread.Abort() を呼び出しても、実際にはスレッドが強制終了されません。DLL の外部から Application.Run() 呼び出しを強制的に中止する方法はありますか?

0 投票する
1 に答える
50 参照

c# - SetApartmentState の ArgumentOutOfRangeException

私はそのようなコードを持っています:

ArgumentOutOfRangeExceptionそして、2行目に例外が発生したら。それはどのように可能ですか?また、後で再発しないようにするにはどうすればよいですか?

前もって感謝します!

0 投票する
1 に答える
1237 参照

c# - ASP.Net WebApi STA モード

この投稿により、WebApi が STA モードで実行できなくなります。しかし、この投稿も2歳です。

MessageHandlers私は新しい WebApi2 を掘り下げてきましたが、STA モードで実行する方法が見つからないようです。

WebApi または WebApi2 を STA モードで実行する方法を見つけた人はいますか?

0 投票する
1 に答える
1069 参照

c# - 並列 Foreach が ApartmentState 例外をスローする

事前定義されたリストにタブページを作成するための次のコードがあります。

次の例外が発生します。

現在のスレッドがシングル スレッド アパートメントにないため、インスタンス化できません。

アパートメントの状態を STA に設定する正しい方法は何ですか?

0 投票する
1 に答える
699 参照

c# - Windows フォームの STAThread 要件

私の知る限り、すべての Windows フォーム アプリケーションは、メソッドの[STAThread]上にディレクティブを設定する必要があります。Main()

ただし、例外があります。Compact Framework を使用して、Windows Mobile デバイス用のアプリケーションを作成しています。[STAThread]コンパクト フレームワークはディレクティブさえサポートしていません[MTAThread]。それでも、そこで問題に遭遇したことはありません。

ここで、さらに一歩進めると、本格的な Windows システムで Compact Framework アプリケーションを実行することもできます。その場合、本格的な .NET フレームワークが使用されると思います。

その時点でMTA、本格的な Windows システムで Windows フォームを使用するアパートメント状態でコードを実行しています。これは、コンパクトなフレームワーク アプリケーションが本格的な Windows オペレーティング システムで実行されている場合、[STAThread]ディレクティブの欠落について文句を言わないのはなぜですか?

0 投票する
1 に答える
631 参照

c# - c# から実行している PowerShell コードの実行空間を設定するにはどうすればよいですか?

いくつかの Powershell スクリプトを実行するアプリがあります。(これは基本的に、SQL データベースに格納されている PS スクリプトを取り出して実行するラッパー アプリケーションです。)

追加した Powershell スクリプトの 1 つが現在失敗しています。これは、STA アパートメント状態で実行する必要があるためだと感じています。しかし、C#でアパートメントステートを設定する方法がわかりません。

私が使用している関数は次のとおりです。

スクリプトを STA モードで実行するように設定するにはどうすればよいですか?