問題タブ [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 投票する
1 に答える
1115 参照

asp.net - .net Web ページの AsyncCallback が暴走する

私はしばらくの間、オンとオフの小さなプロジェクトに取り組んできました。私は近いと思いますが、「問題」があります。アイデアは、ファイルをサード パーティに FTP 送信し、サード パーティが処理し、5 ~ 10 分後に結果セットを生成することです。この結果セットをダウンロードして処理する必要があります。

コードは少し単純かもしれません。

非常に簡単です。ファイルをプッシュアップし、現在処理されているファイルのリストを取得し、時々待ってチェックし、新しいファイルが表示されたらダウンロードします。

AsyncCallback を追加する前は、ページが返されるまでユーザーが何もできず、進行状況インジケーターなどを表示できなかったことを除いて、プロセスは正常に機能していました。AsyncCallback を追加した後、突然 UPLOAD 部分がリモートエンドをスパムし、なんとかそれらをクラッシュさせました(または少なくとも特定の接続)。

それについての考えをいただければ幸いです...トレーダーは仕事ができないと少し動揺し、ブルームバーグは3時間以上費やさなければならないときに少し動揺するため、プロセスを正しく修正する必要があると言う必要があります.それを解決しようとしています:(

ありがとう!

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

c# - Control.BeginInvoke の AsyncCallback メソッドをデリゲートするにはどうすればよいですか? (。ネット)

Control.BeginInvoke を「ファイア アンド フォーゲット」方式以外で使用することは可能ですか? 次のリクエストを変更してコールバック メソッドをデリゲートし、各非同期呼び出しが完了したときに何かを実行できるようにします。

通常のデリゲートでこれを行うことができます.BeginInvokeなど

しかし、Control .BeginInvoke を呼び出しているため、「クロススレッド操作が無効です」というエラーが発生するため、これを行うことはできません。
誰か助けて?

受け取った回答のいくつかに加えて、「なぜ」を明確にします。アプリの残りの部分をロックせずに、GUI でコントロールをロード/更新する必要があります。コントロールには、データセットを取得して渡す必要がある多数のコントロール (ruleListCtls) が含まれています。すなわち

デリゲート コールバック メソッドを提供し、コントロールを修正するコードをそれらが作成されたメインの GUI スレッドに戻すと、これを実行できることがわかりました (クロススレッド エラーを回避するため)。

コールバックを受信したメイン スレッドに委譲する内容は次のとおりです。

これで問題なく動作します。ただし、これが特にエレガントだとは思わないことを除けば、主な問題は例外処理です。これは別の質問かもしれませんが、RefreshRulesDs が例外をスローすると、エラーが (明らかに) GUI スレッドにバブルアップされず、未処理の例外として発生するため、アプリがクラッシュします。これらをキャッチできるまで、この操作全体を同期的に行う必要があります。エラーをキャッチして残りのコントロールを読み込むにはどうすればよいですか? または、適切な例外処理を使用して、この非同期操作を別の方法で実現するにはどうすればよいですか?

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

sql - 非同期コールバック-gwt

プロジェクトにgwtとpostgresを使用しています。フロントエンドには、[プロジェクトの保存]ボタンをクリックしたときにバックエンドのテーブルにデータを保存しようとしているウィジェットがいくつかあります(これは、作成されたプロジェクトの名前にもなります)。

非同期コールバックの部分では、複数のテーブルを設定しています。しかし、それはデータを適切に送信していません。次のエラーが発生します。

しかし、プロジェクトテーブルでselectステートメントを実行すると、プロジェクト名が存在することがわかります。

コールバック部分は次のようになります。

質問:

  1. 他のすべてのテーブルが特定のテーブルに依存している非同期コールバックに複数を設定するのは間違っていますか?
  2. 上記のコードでsetProjectsと言うと、最初に完了してから次のコードに移動しませんか?

ご入力いただければ幸いです。

ありがとうございました。

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

gwt - 非同期コールバックは値を保存しますが、FAILED を出力します

ネストされた非同期コールバックを使用して、フロントエンド データをバックエンド データベースに保存しています。データは希望どおりにテーブルに保存されていますが、失敗したことが印刷されています。コードは次のとおりです。

ここでは、最初のコールバックでは成功したと出力されますが、ネストされたコールバックでは失敗と表示されますが、値は保存されます。失敗した場合に出力されるスタックは次のとおりです。

何か不足していますか?

どんな入力も大いに役立ちます。ありがとうございました。

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

c# - 非同期を呼び出す BackgroundWorker から例外をスローします。メソッド (Web リクエスト)

  • メイン アプリケーションが新しい BackgroundWorker X を作成する
  • X の DoWork イベント ハンドラは、コントローラのメソッド Y を呼び出します。このメソッドは、AsyncCallback を使用して WebRequest (非同期) インスタンスとコールバックを作成します。
  • 応答が到着すると、コールバック メソッド Z が呼び出され、コンテンツが分析されます。応答に不要なコンテンツが含まれる場合があります。その時点で、コールバック Z が例外をスローします。

メイン アプリケーションでこの例外をキャッチしたいと考えています。DoWork と RunWorkerCompleted で試しましたが、そこから何もキャッチできません。

RunWorkerCompletedEventArgs のエラーは常に null です。

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

c# - C# .NET 3.5 での AsyncCallback の問題

(AsyncCallbacks を使用して) 100 を超えるソケットと通信するシングル スレッド Windows アプリケーションを作成しました。

.NET IDE から起動すると、アプリケーションは正常に動作します。実行可能ファイルから起動すると、アプリケーションがハングするようです。さらに調査したところ、アプリケーションはソケット上で完全に正常に通信しており、UI のデータのみが更新されていないことがわかりました。アプリケーションがビジー状態で、UI を更新するよりもソケットから読み取ることができないようです。

アプリケーションは、AsyncCallback をソケットごとに個別のスレッドに置き換えることで正常に動作しますが、これは良いアプローチではないようです。

メッセージ キューを作成しようとしましたが、役に立ちませんでした。

UI を更新するよりも、アプリケーションがソケットでの読み取りにビジーであると言うのは正しいですか? この問題を解決するにはどうすればよいですか?

AsynCallBack に使用するコードを以下に示します。

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

c# - callBack メソッドは割り当ての前に呼び出されますか、それともここで呼び出されますか?

以下のコードは、基本的に SilverLight アプリケーションでドメイン サービスを呼び出しています。

最初に行う操作を教えてください。

loadOperation 変数が割り当てられる前または割り当てられた後に callBack メソッドが呼び出されますか?

ありがとう

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

c# - trigger event from an AsyncCallback in c#

My question involves events and where I am triggering the events in my class. This class wraps my TCP functionality and I am using TcpListener to achieve this. I realize some TCP stuff may be missing from the following example but I want to make things as simple as possible:

c# 2.0 sample

I guess my question is, without breaking this pattern too much, what makes more sense? Also, if anyone has a better more elegant solution they are welcome.

Theory

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

c# - WP7 BeginGetResponse コールバックから例外をプロポゲートする

HttpWebRequest を使用して Web サービスを呼び出しています。BeginGetResponse からの AsyncCallback がエラーをスローした場合、それをメイン プログラム フローまで伝達したいと考えています。エラーが AsyncCallback を超えて伝播されないため、これを行うのに問題があります。HttpWebRequest チェーンの各ステップに try/catch ブロックを配置しようとしましたが、「ResponseCallBack」メソッドを超えて伝播することはありません。メインスレッドに戻すことは可能ですか?



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

gwt - GWT RPC を使用するとエラーが発生する

RPC を使用すると Eclipse で問題が発生します。単一のメソッド呼び出しを使用する場合はすべて正しい方向ですが、サーバーを処理する新しいメソッドを追加すると、次のエラーが発生します。

非同期呼び出しでより多くのサービスを使用できますか? どこが間違っていますか?

これは私の実装 MyService です:

MyServiceAsync

RPC サービス:

MyServiceImpl

クライアント側のアプリで私は

と..

Web.xml:

ご清聴ありがとうございました

セベ