問題タブ [asynchronous]
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.
asynchronous - 非同期操作を実行するカスタム Windows ワークフロー アクティビティを実装する
これを最適に実装する方法を理解する上で概念的な問題が発生しています... Windows ワークフロー用のカスタム アクティビティ クラスを作成したいと考えています。アクティビティは、別のプロセスを非同期で実行するサード パーティのライブラリ メソッドを呼び出す必要があり、完了までに数秒から数時間かかる場合があります。このライブラリは、メソッドの結果をポーリングするか、メソッドの完了を示すイベントをサブスクライブする機能を提供します。ワークフロー以外のアプリでは、通常はそのイベントをサブスクライブするだけですが、ワークフローの場合は適切ではないようです。また、ポーリング方式を最適に実装する方法も正確にはわかりません。誰かが同様の問題へのいくつかの指針を推奨できますか?
delphi - Delphi で非同期ソケット プログラミングを行う慣用的な方法は何ですか?
Delphi でネットワーク コードを書いている人が、Windows スタイルのオーバーラップ非同期ソケット I/O を使用する通常の方法は何ですか?
この質問に関する私の以前の調査は次のとおりです。
Indyコンポーネントは完全に同期しているようです。一方、ScktComp ユニットは WSAAsyncSelect を使用しますが、基本的には BSD スタイルの多重化されたソケット アプリのみを非同期化します。ループ内の select() から戻ってきたかのように、単一のイベント コールバックにダンプされ、すべてのステート マシン ナビゲーションを自分で行う必要があります。
.NET の状況は、継続が Socket.BeginRead に直接渡される Socket.BeginRead / Socket.EndRead を使用すると、かなり良くなり、そこから元に戻ります。クロージャーとしてコード化された継続には、明らかに必要なすべてのコンテキストとそれ以上のものがあります。
c++ - 非同期Mysqlコネクタ
CまたはC++アプリケーション内で使用できるMysql用の非同期コネクタはありますか?Boost.Asioで書かれたreactorパターンにプラグインできるものを探しています。
[編集:]スレッドで同期コネクタを実行することはオプションではありません。
apache-flex - ActionScript 3/Flex/AIR で 1:1 非同期コールバック/イベントを実装する最良の方法は?
私はFlex プロジェクトでコマンド パターンを利用してきましたが、以下の間に非同期コールバック ルートが必要です。
- 与えられたコマンドオブジェクトとコマンドオブジェクトをインスタンス化した人は誰でも、
- コマンド オブジェクトと、コマンド オブジェクトが呼び出す「データ アクセス」オブジェクト (つまり、ネットワークを介してサーバーへのリモート プロシージャ コールを処理する人)。
これら 2 つのコールバック ルートのそれぞれが、1 対 1 の関係になる必要があります。これは、特定のコマンド クラスの複数のインスタンスがまったく同じジョブを同時に実行しているが、パラメーターがわずかに異なる可能性があるためであり、それらのコールバックが混同されることは望ましくありません。AS3 で非同期性を処理するデフォルトの方法であるイベントの使用は、本質的に 1 対多の関係に基づいているため、ほとんど役に立ちません。
現在、特定の種類のシグネチャを持つコールバック関数参照を使用してこれを行っていますが、誰かがより良い (または代替の) 方法を知っているかどうか疑問に思っていましたか?
私の現在の方法を説明する例を次に示します。
- ユーザー アクションによってインスタンスを生成するビュー オブジェクトがあり
DeleteObjectCommand
、それ自体のプライベート メンバー関数の 2 つ (成功の場合は 1 つ、失敗の場合は 1 つ: この例では"deleteObjectSuccessHandler()"
と"deleteObjectFailureHandler()"
) への参照をコマンド クラスのコールバック関数への参照として渡します。コンストラクタ。 - 次に、コマンド オブジェクトは、「データ アクセス」オブジェクトへの接続でこのパターンを繰り返します。
- ネットワーク上の RPC が正常に完了した (または失敗した) 場合、適切なコールバック関数が最初に「データ アクセス」オブジェクトによって呼び出され、次にコマンド オブジェクトによって呼び出されます。場所は、
deleteObjectSuccessHandler()
または呼び出されることによって通知されdeleteObjectFailureHandler()
ます。
c - 非同期 API
非同期 API 呼び出し / ノンブロッキング呼び出しを実装しようとするとき、私が持っている All Plain-C アプリケーションで少し知っていることは、「デリゲート」による APM (非同期プログラミング モデル) について読んだことです。基本的に私がやりたいことf1()
は、機能を実行するために 1 つの API を呼び出すことです (これには 8 ~ 10 秒かかります)。そのため、その API を呼び出し、それをf1()
忘れて、データをフェッチするための I/O など、他の作業を続けます。f1()
または の結果に依存しない機能の次の呼び出し用f1()
。
その APM モデルのプログラミングを使用したことがある人がいれば、非ブロッキング呼び出しの実装に関する簡潔な説明を探しています。
非同期 API を実装する他の方法、これに役立つ他のライブラリ/フレームワークはありますか?
c# - 最後の OutputDataReceived がいつ到着したかを知るにはどうすればよいですか?
.Net Framework 3.5 を対象としたプログラムに System.Diagnostics.Process オブジェクトがあります。
StandardOutput
パイプとパイプの両方をリダイレクトStandardError
し、それらから非同期でデータを受信しています。また、Exited イベントのイベント ハンドラーも設定しました。
電話をかけたらProcess.Start()
、イベントが発生するのを待っている間、外に出て他の仕事をしたいと思います。
残念ながら、大量の情報を返すプロセスの場合、Exited イベントは最後のOutputDataReceived
イベントの前に発生するようです。
OutputDataReceived
最後がいつ受信されたかを知るにはどうすればよいですか? Exited
理想的には、このイベントを受信する最後のイベントにしたいと考えています。
以下にプログラム例を示します。
このプログラムを実行すると、「Exited (Event)」が出力内のまったく異なる場所に表示されることに気付くでしょう。数回実行する必要があるかもしれませんし、明らかに、「output.exe」を適切な大量の出力を生成する任意のプログラムに置き換える必要があります。
もう一度質問します。最後のメッセージがいつOutputDataReceived
受信されたかを知るにはどうすればよいですか? Exited
理想的には、このイベントを受信する最後のイベントにしたいと考えています。
python - Python Twisted での非同期プログラミング
Twisted でリバース プロキシを開発するのに問題があります。それは機能しますが、過度に複雑で複雑に見えます。その多くはブードゥーのように感じます。
Web や書籍に、非同期プログラム構造の単純で堅実な例はありますか? 一種のベスト プラクティス ガイドですか? プログラムを完成させた後も、スパゲッティの入ったボウルを見るのではなく、何らかの方法で構造を確認できるようにしたいと考えています。
c# - C#でイベントを非同期にするための最良の方法
イベントはC#で同期されます。このアプリケーションでは、メインフォームがストリームをリッスンするループを含むスレッドを開始します。ストリームに何かが発生すると、ループからメインフォームにイベントが発生します。
メインフォームが遅いか、メッセージボックスなどが表示されている場合、ループは中断されます。これを回避する最善の方法は何ですか?コールバックを使用してメインフォームで呼び出すことによって?
asynchronous - ASP.NET2.0のSmtpClient.SendAsyncのバグ
私は間違っているかもしれませんが、ASP.NET 2.0でSmtpClient.SendAsyncを使用していて、例外がスローされた場合、要求を処理するスレッドは、操作が完了するまで無期限に待機します。
この問題を再現するには、電子メールの送信時に解決できなかったホストの無効なSMTPアドレスを使用するだけです。
SendAsyncを使用するには、Page.Async=trueを設定する必要があることに注意してください。
Page.Asyncがfalseに設定されていて、Sendが例外をスローした場合、スレッドはブロックされず、ページは正しく処理されます。
TIA。
asp.net-ajax - AJAX - 値をサーバーに戻す方法
初めて .NET で UpdatePanels を使用します。
FormView コントロールのイベントを指すトリガーを持つ updatepanel があります。UpdatePanel は、別のデータベースからの関連データを含む ListView を保持します。
UpdatePanel が更新されると、FormView コントロールからの値が必要になるため、サーバー上でそれらを使用してデータベースを照会できます。
私の場合、一生、これらの値を取得する方法がわかりません。私がトリガーしているイベントにはそれらがありますが、updatepanel を非同期で更新したいと考えています。パネルの load イベントに値を渡すにはどうすればよいですか?
この広告の吐き気をグーグルで検索しましたが、ここで答えが得られないようです。リンクまたは説明は非常に役立ちます..
ジェフ