問題タブ [mta]
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.
c++ - C++ で COM を使用した QueueUserWorkItem
C++ アプリケーションの DOM でクライアントが何百もの特定の種類のオブジェクト「Foo」を作成しているというパフォーマンスの問題があります。各 Foo インスタンスには、独自のスレッドを持つ独自の非同期作業キューがあります。明らかに、それはスケーリングしません。
ワーク キュー間でスレッドを共有する必要がありますが、車輪の再発明はしたくありません。XP をサポートする必要があるため、Vista/Win7 スレッド プールを使用できません。各キュー アイテムを処理するために必要な作業には、マルチスレッド COM アパートメントでの COM 呼び出しの作成が含まれます。XP スレッド プールのドキュメントには、スレッド ワーカー関数のコールバックで MTA アパートメントを使用して CoInitializeEx() を呼び出しても問題ないと書かれています。テストアプリを作成し、これが機能することを確認しました。WorkItem コールバック関数で CoInitializeEx/CoUninitialize ペアを使用する場合と使用しない場合で、アプリを 100 万回反復実行させました。CoInit* 呼び出しで 35 秒、呼び出しなしで 5 秒かかります。これは、私のアプリケーションにとってオーバーヘッドが多すぎます。スレッド プールはプロセスごとであり、サード パーティのコードは自分のプロセスで実行されるため、そうではないと想定しています。
以上のことから、Win32 スレッド プールを使用する方法はありますか? 何か足りないのでしょうか、それとも XP スレッド プールは高パフォーマンスの COM アプリケーションには役に立たないのでしょうか? 独自のスレッド共有システムを作成する必要がありますか?
linux - メールがリモート ドメインではなくローカル ドメインに送信される
mywebsite.com をホストするサーバーがあります
info@mywebsite.com にメールを送信しようとすると、MTA はそれをローカル ホストに送信しようとしています (メールは別のサーバーで管理されています)。どうすればこれを修正できますか?!
qmailを実行しているLinuxサーバー
さらに情報が必要な場合はお問い合わせください
ありがとう!
php - プログラマーがPHPを使用して電子メールを送信する方法は何ですか?
プログラマーが電子メールを送信するために使用できる組み込みのPHP関数のリストを探しています。
ここでの明白な答えはですがmail()
、MTAへの接続を手動で開くため、またはローカルマシンでプロセスを生成するために誰かが使用する可能性のある関数のリストも探しています。このプロセスは、sendmail、postfixなどを使用して電子メールを送信する可能性があります。 。
ここでのコンテキストは、電子メールを送信しているコードの大規模な未知のコードベースをスキャンしたいということです(私たちはすでにへの呼び出しを見つけましたがmail()
、それはそれをしていません)
c# - 外部プロセスからのC#でのスレッドの問題
私はこの単純なコードを持っています:
残念ながら、このコードを(サードパーティのプロセスから)実行すると、スレッドは実際には実行されません。プロセスエクスプローラーとVSデバッガーのどちらでも、スレッドが作成され、その状態が「実行中」であることがわかります。
メインスレッドのアパートメントはSTAであり、内部スレッドでSTAとMTAの両方を試しました。
Run()
最後にメソッドに追加するとinvokerThread.Join();
、スレッドは実行されます。しかし、それでも実際には役に立ちません。
私は何が欠けていますか?
編集:ここにコードホスティングに関するいくつかの詳細情報があります-
Run()
メソッドは、実行可能アセンブリも管理されているプロセスからCOM相互運用機能を介して呼び出されます(COM相互運用機能が使用される理由は、システム内の他のすべてのコンポーネントがネイティブであるためです)。
このメソッドRunOnBackground()
には、トレース後にさらにいくつかのコードが含まれ、通常、別のプロセスの開始と終了の待機を含め、その実行は10〜20秒続きます。また、トレースにデバッグ情報を書き込む他の領域がコードにあります。コードのデバッグ中はRun()
、通常どおりに実行され、invokerThread.Start();
invokerThreadの状態が「実行中」になった後(RunOnBackground()
メソッド内のブレークポイントは停止しません)。
invokerThread.Join()
メソッドの最後に追加するとRun()
、デバッガーは。のRunOnBackground()
後に移動しJoin()
ます。
c# - MTAスレッドと比較したSTAスレッドの制限は何ですか?
このようにスレッドSTAを作成すると、属性Thread.SetApartmentState(STA);
でマークされたコードを実行できなくなります。[MTAThread]
[STAThread]
Windowsやコンソールアプリケーションで見たことがありますが、属性を持つコードを見たことがなく[MTAThread]
、どの.NETライブラリがこの属性を使用しているかわかりません。
私の質問は、MTAアパートメント状態のスレッド(自然な.NETスレッド)と比較して、アパートメント状態がSTAに設定されているスレッドの制限は何ですか?
visual-studio-2010 - MSTest 設定 Apartment Threading to MTA
アパートメント スレッド モデルを MTA に設定する必要があるプロジェクトで、Visual Studio 2010 で MSTest を使用しています。
オンラインで調べたところ、見つけて試した項目は Visual Studio 2008 および 2005 でのみ機能するようです。 aspx。
ありがとう
c++-cli - STA、MTA 競合の警告 重要ですか?
最近、ネイティブ C++ ライブラリの C++/CLI ラッパーを書き始めました。このコンパイル警告が表示されるようになりました
"警告 LNK4249: ディレクティブ '/CLRTHREADATTRIBUTE:STA' はコマンド ラインと競合します。無視されます"
私の c++/cli ラッパーは、リンカのコマンド ライン引数で MTA 用に設定されていますが、STA ディレクティブを指定しようとしているファイルまたはプロジェクトがわかりません。
.NET が強制的にライブラリをマルチスレッド化することについて心配するほど、十分な読み物をしました。これは主にアプリケーションでの COM の使用に影響することを読みましたが、DLL が COM を使用しているかどうか、またはどこで COM を使用しているかはよくわかりません。相互運用サービスを使用して文字列データをマーシャリングし、'msclr\auto_gcroot.h' を使用してアンマネージド クラスからマネージド クラスをポイントしています。ラップされているネイティブ C++ ライブラリに、次のヘッダーを含めます。
将来のつらい経験を避けるのに役立つアドバイスはありますか、それとも心配する必要はありませんか?
email - MTA は正確には何をするのですか?
この質問は私に考えさせられ、今では MTA の内部について何も知らないことに気づきました。
MTA は正確には何をするのですか? SMTP プロトコル以降のすべてが、私には闇の魔法のように思えます。電子メールを送信するためだけに最小限の MTA (またはMDA )をコーディングしたいとしましょう。何を学ぶ必要がありますか?
編集: 実際に MTA を作成する予定はありません。MTA が内部でどのように機能するかを理解したいだけです。
.net - ASPXページのAspcompat
私のaspxページでは、STAを使用するCOMコンポーネントを呼び出します。したがって、aspcompat = trueパラメーターを使用しますが、ロジックを理解したいと思います。それは正確に何をしますか?私の知る限り、STAでは、1つのスレッドによってのみ呼び出されると想定されています。だから私は自分でスレッドセーフを提供する必要があります。
そうだとすれば、aspcompatパラメーターはどこでスレッドセーフを提供しますか?ページ全体、またはSTAコンポーネントにアクセスするポイントだけですか?
email - デフォルトのMTAを指定するにはどうすればよいですか?
mybookworldのcrontabでMAILTO関数を使用しようとしています(NASです)
私はかなりなじみのない(考えている)MTAをインストールしました:esmtp
mutt(コンソールベースの電子メールクライアント)を使用すると、完全に機能します。しかし、crontabでは反応はありません(MTAとしてpostfixを使用してデスクトップマシンと同じcrontabファイルを使用している場合でも)。したがって、おそらくシステムは、esmtpがcrontabから使用できるMTAであることを認識していないと思います。
使用するmtaをcrontabに指示するにはどうすればよいですか?
あいさつ