問題タブ [asynccallback]

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 投票する
3 に答える
4183 参照

gwt - 応答を待っている間、GWT AsyncCallback はどこまで実行されますか?

関数から呼び出す場合 (すべて Java で記述):

コメント A の内容が実行され、同時に非同期の randomMethod が実行され、B のコメントが実行されることを理解しています。

ただし、randomMethod の実行中に (十分な時間がかかる場合)、関数は呼び出し元 (この場合は「hello」メソッド) に戻り、コメント C のコードの実行を開始するのでしょうか? または、executeCallback は randomMethod が終了するのを待ってから戻りますか?

前者の場合、C のコメントに進む前に、randomMethod が触れる情報が必要であると仮定します。これが当てはまることを確認するには、どうすれば「待機」させることができますか?

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

database - Mongoose コールバック関数は、2 番目のパラメータが db.query の結果であることをどのように認識しますか?

匿名のコールバック関数は、以下の例の「アイテム」(または実際には Mongoose クエリの後の次のコールバック関数の 2 番目の引数) がデータベースからの結果であると想定されていることをどのように認識しますか? 、もしあれば?「アイテム」は本当に何でも呼べるので、ここに連絡線は見えません。

ありがとう!

0 投票する
4 に答える
23470 参照

c# - C# Socket.Receive メッセージの長さ

現在、複数のクライアント コンピューターからの複数の接続を受け入れることができる C# ソケット サーバーを開発中です。サーバーの目的は、クライアントがサーバー イベントから「サブスクライブ」および「サブスクライブ解除」できるようにすることです。

これまでのところ、私はここをよく見てみました: http://msdn.microsoft.com/en-us/library/5w7b7x5f(v=VS.100).aspxおよびhttp://msdn.microsoft.com/アイデアについては、 en-us/library/fx6588te.aspxを参照してください。

送信するすべてのメッセージは暗号化されているため、送信したい文字列メッセージを取得し、それを byte[] 配列に変換してからデータを暗号化してから、メッセージの長さをデータに追加して接続経由で送信します.

問題として私を襲う 1 つのことはこれです: 受信側では、メッセージの半分しか受信されていないときに Socket.EndReceive() (または関連するコールバック) が返される可能性があるようです。各メッセージが「完全」に受信され、一度に 1 つのメッセージのみが受信されるようにする簡単な方法はありますか?

編集:たとえば、.NET / Windows ソケットは、Socket.Send() で送信された単一のメッセージが 1 つの Socket.Receive() 呼び出しで受信されるようにメッセージを「ラップ」しませんか? それともそうですか?

これまでの私の実装:

0 投票する
2 に答える
3669 参照

c# - リピーターイベントを非同期的に処理する

ページ(asp.net)に、結果を表示するためのテキストボックスとリピーターを含むカスタム検索コントロールがあります。

ユーザーが入力すると、リピーターにコールバックが入力されます...素晴らしくシンプルなコールバック。

..。

検索結果が選択されると、リピーターがポストバックを起動し、itemcommandイベントが発生します(予想どおり)...このイベントは、子リピーターをそれ自体に追加し、子リストを現在のアイテムにバインドします。

私の問題は、ページのレンダリングにかなりの時間がかかるため、親リピーターが完全なポストバックを起動したくないということです。コントロール/アウターリピーターだけをajaxアップデートパネルコントロールに入れてみましたが、それでも十分なポストバックが発生するようです。

ポストバックではなくコールバックでアイテムコマンドイベントを発生させるようにリピーターに指示する方法を誰かが明らかにすることはできますか?

これには私のリピーターアイテムコントロールの手動配線の負荷が含まれていると思いますが、私のためにそれらすべてを処理するコントロールがどこかにあることを望んでいます:)

編集:私の状況のサンプル...

だから私の質問は...

リピーターに「このリンクボタンをポストバックではなくコールバックとしてonclickで起動する」ように指示するにはどうすればよいですか。

リンクボタンのIDは動的であるため、更新パネルでリピーターをラップするプロセスは役に立ちません。したがって、リンクボタンのトリガーを追加することはできません(とにかくインラインではありません)。

リピーターのonitemboundイベントでパネルにトリガーを手動で追加すると、コールバック参照が無効であるという.Netからの例外が発生します...これは、すでに処理しているコントロールにコールバックトリガーをアタッチしようとしているためだと思いますポストバックイベントまたはリピーターによる設定...

編集2:ここで直面しているシナリオのサンプル

基本的に、このコントロールはページ上でX回行われるため、事実上すべてが動的である必要があります。コントロールはICallbackHandlerを実装し、ユーザーが会社名を入力すると、検索bxコード(以下には含まれていません)がajax呼び出しonkeyupを起動します(したがって、Googleのように機能します)。

ユーザーがリストから会社名をクリックすると、ajaxコールバック/部分的なポストバックがブランチのサブリストを回復し、完全なポストバックで発生するページ全体のちらつきを防ぐことを望んでいました。

次に、ユーザーがブランチを選択すると、完全なポストバックが実行され、いくつかのサーバーアクションが実行されます。

これはそのままで問題なく動作します...それは最もクリーンなユーザーエクスペリエンスではありません。

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

c# - C#IAsyncResult以上のものをAsyncCallbackに渡すにはどうすればよいですか?

IAsyncResult以上のものをAsyncCallbackに渡すにはどうすればよいですか?

コード例:

例の変数を渡したいと思いますbool iWantInToo。に追加する方法がわかりませんnew AsyncCallback(iEndGetResponse)

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

.net - UdpClient.BeginReceiveはいつ使用する必要がありますか?バックグラウンドスレッドでUdpClient.Receiveを使用する必要があるのはいつですか?

本質的に、明白なことを超えてこれらの違いは何ですか?どのフォームをいつ使用する必要がありますか?

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

gwt - RootPanel で非同期呼び出しを使用してウィジェットを表示する GWT

ウィジェットを別のコンテナ クラスの RootPanel に追加するときに問題が発生します。ウィジェットの作成中に行う非同期呼び出しに関連している可能性があると思います。EntryPoint を実装するImageViewという名前のメイン クラスがあります。このクラスでは、ボタンをクリックしてNewWidgetという名前のウィジェットのインスタンスを作成しています。ただし、従来の方法では表示できません。

EntryPointクラス ( ImageView )は次のとおりです。

そして、ここに私のウィジェット(NewWidget)があります:

このNewWidgetでは、10 個の異なる画像 (つまり、"images/01.jpg"、"images/02 .jpg" など)。私は、これらの画像パスを正しく正しく受け取ることができると確信しています。NewWidgetに表示するインデックス番号 4 を任意に選択しました。

問題は、このNewWidgetImageViewメイン パネルに表示できないことです。この方法で他のウィジェットを簡単に表示できます。いろいろ試した結果、 NewWidgetRootPanel.get().add(mainPanel)の最後に一行追加すれば画像を表示できることがわかりました。ただし、親コンテナー ( ImageViewの RootPanel ) を参照する呼び出しを行いたくありません。他のウィジェットを表示できるように、コンテナー パネルでインスタンス化するだけでこの画像を表示できないのはなぜですか? ウィジェットを追加しようとする前に非同期呼び出しが完了しないことに関連していると確信しています。しかし、これを修正する方法がわかりません。

人々が自分の考えを共有してくれたら、とてもうれしいです。ありがとう。

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

c# - コールバック関数: C# winform アプリから参照先の VC++ Exe にコールバックを渡す

非同期コールバック関数

展望: 私はいくつかの VB6 ActiveX アプリケーションを C#.net にアップグレードしています。それらはすべて、参照された VC++.net 実行可能ファイルに登録するコールバック関数を使用して互いに通信します。

次の VB6 機能を C# で複製することはできません。メソッドを含むインスタンス化されたクラスをコールバック関数パラメーターとして VC++ に渡す VB6 の機能。VC++ は非同期通信のコールバック関数として登録します。

アップグレードは、 CallBack 関数という 1 つの問題を除けば非常にうまくいきました ...そして、私は 2 週間もその問題に取り組んでいます。私を助けてください!!!

コールバック関数をデリゲートとして渡す方法を理解しました。これは、C# DynamicInvoke で動作するようになりましたが、VC++ で動作するにはこれが本当に必要です。

VC++ステートメントから取得し続けるエラー メッセージは、「パラメーターの数が無効です」です。 invoke


以下に、非同期コールバックを処理する VB6 および VC++ 機能の概要を説明しました。VB6 ActiveX コンポーネントはそれぞれ、1 つのメソッドを含むクラスをコールバック関数として VC++ 実行可能ファイルに渡します。VC++ 実行可能ファイルは、後で使用するためにコールバックを配列に保存します。これは既存のコードであるため、期待どおりに動作します。

以下は、インスタンス化され、コールバックとして使用されるVB6クラス です。Class1
Attribute Notify.VB_UserMemId = 0

上記のコードは、混乱を避けるために簡略化されています。

以下は、 VC++ 実行可能ファイル ( ) をインスタンス化し、インスタンス化されたものをコールバック パラメータとして渡すVB6コードです。VCCallbackHandlerClass1

VC++ コードはコールバックを登録し (以下を参照)、後で (非同期で) VC++ は、他のイベントによってプロンプトが表示された場合にコールバックを利用できます (以下の「BroadCast」を参照)。この場合、VC++ exe は、複数の同時実行アプリの中央コールバック ハンドラーとして機能しています。各アプリはコールバックを VC++ コールバック ハンドラーに登録しており、あるアプリが別のイベントを呼び出して VC++ callbackHandler を呼び出すと、すべてのコールバックが呼び出されます。このようにして、コールバック ハンドラは、これらすべての他のアプリケーションが相互に通信できるようにします。

以下は、関連するVC++.Netコールバック コードです。

コールバックの登録:

コールバックの呼び出し:

ノート。 上記の作品。

考えられる解決策は 2 つあります。

  1. C#: C# でメソッドをパラメーターとして渡す方法。デリゲートを使用してそれを行う方法を見つけましたが、VC++ はデリゲートではなくメソッドを必要としています。
  2. VC++: 呼び出すコールバックとしてメソッドではなくデリゲートを処理するように VC++ を取得する方法。

次のC#コード スニペットのいずれでも成功しませんでした: `

  • Marshal.GetFunctionPointerForDelegate
  • GCHandle
  • KeepAlive

私はそこに誰かがこの問題を抱えていて、行くことができることを願っています... スナップ...簡単です..これを使用してください...交差した指。

0 投票する
6 に答える
7093 参照

c# - 非同期タスクを起動する方法はありますが、ActionResult を返す前にすべてのコールバックを待ちますか?

HttpFileCollectionBaseHTTP POST でa を受け入れる ASP.NET MVC 3 アクション メソッドがあります。

この方法では、画像のサイズを変更して 3 回アップロードする必要があります。

現在、アクション メソッドは次のようになっています。

基本的に、これはユーザー プロフィール ページで、プロフィール写真を変更します。アップロードは jQuery AJAX 経由で行われます。

ResizeAndUploadでは、3 つの呼び出しを非同期タスクとして起動し、3 つのタスクがすべて完了するまでアクションの結果を返さないにはどうすればよいでしょうか?

以前はTask.Factory.StartNew非同期タスクを起動するために使用していましたが、それは結果を待つことを気にしなかったときでした。

何か案は?

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

c# - コールバックで非同期メソッドに渡されるパラメーターを取得する方法

CallbackMethodSendRegistration の AsyncSendRegistrationMethod に送信されるラベルが必要です。