問題タブ [interprocess]
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.
.net - Win32API.OpenFileMappingは、IEツールバーからアクセス違反の例外をスローします
プロセス間でいくつかの情報を共有するために、メモリマッピングファイルテクニックを試しています
ただし、これをコンポーネントの1つであるIEツールバーで使用すると、IEがプロテクトモードで実行されているときにアクセス違反の例外がスローされます。
誰かがこの点で私を助けることができますか??。
IEがプロテクトモードで実行しているときに問題が発生しない複数のプロセス内でメモリを共有する代替手段がある場合は、共有してください
詳細なシナリオはすでにここで説明されています ありがとう
c# - Process.Start vs Process 'p = new Process()' in C#?
この投稿で質問されているように、C# で別のプロセスを呼び出す方法は 2 つあります。
と
- Q1 : それぞれのアプローチの長所と短所は何ですか?
- Q2 : メソッドでエラーが発生するかどうかを確認する
Process.Start()
方法は?
c# - サブプロセスがC#で出力する値を出力するには?
この投稿で質問されているように、Python の subprocess.Popen() 関数を使用して、実行中の Ruby のコードから値を出力できます。
C# で同じことを行うにはどうすればよいですか? サブプロセスが出力する値をどのように出力できますか?
android - Android リモート メソッド (AIDL) とインテント - パフォーマンスとバッテリー使用量
私のチームは、(同じ電話で) データを交換する複数の Android アプリケーションで構成される Android プロジェクトに取り組んでいます。アイデアは、いくつかのデータを収集し、このデータをメインアプリケーションに送信するいくつかのアプリケーションを持つことです。ここでの主な課題は、CPU 負荷とバッテリー使用量の観点から、交換をできるだけ安く行うことです。
私の知る限り、プロセス間通信を実現するには 2 つの方法があります。
- インテントとアクティビティ - あるアクティビティが別のアクティビティのインテントをキャッチ
- リモート メソッド (AIDL 経由)
次のシナリオでは、どちらがより効率的か疑問に思います。
- 非常に頻繁なメッセージ/メソッド呼び出しで、送信されるデータ/トラフィックが非常に少ない (例: 一連のプリミティブを渡すだけ)
- トラフィック チャンクが大きく、メッセージ/メソッド呼び出しの頻度が低い (例: データを収集し、定期的に数 KB/MB のデータを送信する)
- 大きなデータ チャンクが交換される非常に頻繁なメッセージ/メソッド呼び出し
比較またはベンチマークへの参照/リンクのいずれかの点で、助けていただければ幸いです。
java - Bluetooth接続を新しいアクティビティに渡す
メインアクティビティを含むアプリケーションがあります。このアプリケーションには、すべてのアプリケーションセットアップオプションといくつかのユーザー選択を備えた非常にシンプルな画面があります。メイン画面のボタンは他のアクティビティを開始します。
(1)現在、Bluetoothスキャナーをアプリケーションに実装しています。設定を編集し、メインアクティビティでBluetooth接続を確立し、その接続を(バンドルまたはパーセル可能で?)他のアクティビティに渡すことができるようにしたいと思います。
接続を渡す方法としてBundleを調べましたが、値としてプリミティブ型と基本型のみを受け入れるようです。Intent.putExtra(String、Parcelable)が利用可能であることに気づきましたが、Parcelは私を混乱させました。これを実装するための最良の方法は何でしょうか、それとも可能ですか?
いくつかの関連コード:
(2)データベース接続も渡すことはできますか?SQLiteOpenHelperをサブクラス化する必要があることを理解しています。これにより、IPCが複雑になる可能性がありますが、それでもどういうわけか可能だと思いましたか?
c# - コード (この場合はクラス) をサーバー/プログラムに送信し、出力を受け取るにはどうすればよいですか
状況は次のとおりです。
すぐにアクセスする必要がある膨大なデータ セットがあります。これは財務データ セットなので、基本的には、各時点で何千もの株式のデータが設定されています。現在、このデータをプログラムにロードするにはしばらく時間がかかります (20 ~ 40 秒)。コードを変更するたびにこれを行う必要はありません。
基本的に、私にはアイデアがあり、それが理にかなっているのか/最適であるかを知りたい. すべてのデータがロードされ、すべてのオブジェクト定義が含まれるある種のサーバーをセットアップすることを考えていました。次に、2 番目のプログラム/クライアントから、事前定義されたタイプのクラス (戦略クラス) をサーバーに送信したいと考えています。サーバーにコードを実行させてから、サーバーにテストの結果を返してもらいます。
この場合、トレーディング戦略を作成しているので、「戦略」に必要なものを定義する抽象クラスがあります。日付が変わるたびに派生した「戦略」を呼び出し、戦略が株を売買し、戦略からの利益を結果オブジェクトに保存する市場シミュレーターがあります。そのため、戦略部分をコーディングして送信し、結果部分を受信できるようにしたいと考えています。ストラテジー オブジェクトのパラメーターまたは生のコードを変更するたびに、すべてのデータをロードすることを避けたいと考えています。
これが誰かにとって意味があることを願っています。明確でない場合は申し訳ありません。これが可能かどうか教えてください。その後、どうすればこれをグーグルで検索できますか?? ここで何を検索すればよいかさえわかりません。
c - プロセスがshm_open()を使用する場合、Linuxカーネルはどのようにメモリポインタを割り当てますか?
Linux 2.6を使用していますが、奇妙な問題があります。プロセスごとに1つずつ、3つの異なる共有メモリセグメントを取得する必要がある3つの並行プロセス(同じプロセスからフォークされた)があります。各プロセスはこのコードを実行します(「メッセージ」タイプはユーザー定義であることに注意してください)
少し説明させてください。すべてのプロセスに、メッセージを含む共有メモリゾーンを割り当ててもらいたいのです。別のプロセス(メッセージ受信者)が同じshmにアクセスできるようにするために、shmファイルの名前を「message」からメッセージポインターにちなんで名付けられた文字列に変更します(これは、メッセージを受信するプロセスが既にポインターを知っているためです)。
しかし、プログラムを実行するときに、shm_openで取得したfdをmmapするときにすべてのプロセスが受け取ったポインターを(デバッグ目的で)出力しようとしましたが、すべてのプロセスが同じポインターを持っていることに気付きました。どうしてそれは可能ですか?他のプロセスが最初のプロセスの後でセグメントの名前を変更する前にshm_open()を実行したのではないかと思ったので、プロセス共有ミューテックスを使用してこれらのコード行をアトミック操作にしようとしましたが、問題は解決しません。
どんな種類の助けや提案も本当にありがたいです。
c# - C#-C プロセス間通信
さて、私はCで書かれた別のプログラムを実行するプロセスを起動するC#で書かれたプログラムを持っています。これで、CプログラムからstdoutをリダイレクトしてC#側でそれを取得することをすでに解決しました。 . しかし、C# プログラムが C プログラムに終了を伝える方法が必要です。私が最初に考えたのは、C プログラムはもともと conio.h から kbhit をテストすることで制御されていたので、stdin をリダイレクトして何かをストリームライトするだけで、キー ヒットを検出できるということでしたが、それは機能しませんでした (kbhit を推測しています)。リダイレクトには向いていません)、私は周りを検索しましたが、多くの人が PeekConsoleInput() を提案し続けました。そこで、kbhit の代わりに PeekConsoleInput を使用するように c プログラムを変更し、標準入力をリダイレクトしましたが、送信したものはまだ検出されませんでした。たとえば、Cで...
そしてC#コードからのスニペット...
C プログラムはそれ自体で実行されますが、C# プログラムが実行されると、「ヒット検出」に達することはありません。また、s.WriteLine("Q") を数秒遅らせて、タイミングの問題であり、それでも機能しないかどうかを確認しました。
理想的には、C プログラムを単独で実行できるようにするか、C# プログラムで実行できるようにしたかったのですが、C プログラムを単独で実行できなくても、それほど悪くはありません。
私が試みたものの1つは、C#プログラムにファイルを書き込むだけで、Cプログラムが正常に開くまでfopenでポーリングすることでしたが、このCプログラムの主な目的の1つは、データをディスクに書き込むことです非常に高速で、ディスクをポーリングすると速度が低下するのではないかと心配しています。
ちょっとうまくいったもう1つのことは、プロセスを閉じることでした。しかし、Cプログラムは閉じる前にいくつかのものをクリーンアップする必要があるため、面倒です(シャットダウンする前にCプログラムにコードを実行させる方法がない限り、それができるかどうかはわかりません)。
これを実現する他の方法は、ソケット、パイプなどですが、1 ビットの信号だけでは大変な作業のように思えます。また、それを行う方法について私が見つけたすべての例は、2 つの C# プログラムを通信させる方法、または 2 つの C プログラムを通信させる方法であり、2 つの異なる言語で 2 つの異なるプログラムを使用することはありませんでした。
まず、この stdin リダイレクトを機能させる方法はありますか? そうでない場合、Cプロセスに終了する必要があることを伝える最も簡単な解決策は何ですか?
c++ - named_semaphore の例を後押ししますか?
boost::interprocess:: named_semaphoreの使用方法を示す良い例を見つけることができませんでした (Boost Web サイトでも)。
私はinterprocess_semaphoreについて何かを見ることができましたが、それらはかなり異なっているようで、一方に示されていることが他方にも当てはまるかどうかはわかりません。
そのような例/tutorials/documentationへのリンクを誰か教えてもらえますか?
ありがとうございました。
.net - MS Word や Visual Studio などの他のアプリケーションからクリップボード データにアクセスして解析するにはどうすればよいですか?
サード パーティ製アプリの開発者は、クリップボード データ以外にアクセスすることを必ずしも望んでいないことを理解しています。それでも、基になるクリップボードの内容を取得して、自分にとって役立つものを抽出したいとします。どうすればいいですか?これには、他のプロセスのメモリをいじることが含まれますか? または、dotnet でリフレクションを使用してクリップボード オブジェクトからプロパティを検出して抽出しようとしていますか? または、これにどのようにアプローチしますか?
ETA: わかりました。抽象度が低い方のために、例を考えてみましょう。Visual Studio のフォーム デザイナーで、いくつかのウィジェットを選択してコピーします。ここで、クリップボードを解析して、コピーしたばかりのウィジェットの名前、場所、サイズを見つけたいと思います (ビジュアル スタジオなどのプラグインを書きたくないので、特にクリップボードから情報を取得したい)。Visual Studio プロセスの 2 つのインスタンス間でウィジェット (名前、場所、その他のプロパティを含む) をコピーして貼り付けることができるという理由だけで、これが理論的に可能であることはわかっています。