問題タブ [iasyncresult]
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# - AsyncCallbackとIAsyncResultパターンに関する2つの質問
AsyncCallbackとIAsyncResultを使用したコールバックパターンに関する2つの質問。
コード例で質問を変更しました:
編集
を開始私は何が起こっているのかを見始めています。WCF非同期パターンと通常の非同期パターンを混同しました。WCFでは、プロキシを使用し、Begin-およびEndMethodには、関数デリゲートではなくプロキシを渡す必要があります。WCFの場合、キャストは機能しますが、通常の場合は機能しません。WCFは、[OperationContract(AsyncPattern = true)]属性を使用して、おそらく多少異なるパターンを適用します。編集終了
なぜ回線にエラーがあるのreturn (string)(result.AsyncState);
ですか?
本番コードとまったく同じパターンで問題ありません。
次に、クラスTestのBeginMethodでコードをデバッグできないのはなぜですか?
私はWorkerFunctionでしか中断できません。
c# - 別の IAsyncResult を待機する IAsyncResult メソッドを待機する (連鎖)
(.NET 3.5 ストックのみを使用できるため、タスクもリアクティブ拡張もありません)
単純なケースだと思っていたのですが、困惑しています。
簡単に言うと、BeginGetRequestStream の IAsyncResult を BeginMyOperation() の呼び出し元に返しています。EndGetRequestStream が呼び出されたときに呼び出される BeginGetResponse の IAsyncResult を実際に送り返したいのです。
だから私は疑問に思っています、どうすればいいですか
c# - C#IAsyncResult以上のものをAsyncCallbackに渡すにはどうすればよいですか?
IAsyncResult以上のものをAsyncCallbackに渡すにはどうすればよいですか?
コード例:
例の変数を渡したいと思いますbool iWantInToo
。に追加する方法がわかりませんnew AsyncCallback(iEndGetResponse)
。
c# - C#IAsyncResult WaitAll
WaitAllの実装のいくつかで、私は次のコードを見ました
これは正しいと思いますか?waitHandles配列が作成される前に、呼び出しの1つが完了する可能性はどのくらいありますか?
よろしく、ダナンジェイ
c# - IAsyncresult - UI をフリーズせずにポーリングしますか?
非同期で実行されている Windows svc があります (メソッドとそのパラメーターを編集して非同期にしました) 。
ただし、非同期で実行したいタスクを呼び出し (サービス/サーバーへの呼び出し)、UI を更新します (backgroundworker で ReportProgress() を使用)。これはすべて、backgroundworker の dowork() メソッドで行われます。 )。ただし、結果を取得するために Endxxx メソッドを呼び出しますが、問題は、私のコードが次のように見えるべきではないということです。
ただし、この方法では UI がロックされます。現時点では、私のコードは次のようになっています (UI をロックしません)。
これは正しいです?私には間違っているようです。
wcf - WCF非同期デッドロック?
WaitAny 呼び出しが有効なハンドル インデックスを返すが、Proxy.End 呼び出しがブロックされるという状況に遭遇した人はいますか? または、これをデバッグするための推奨事項または最適な方法があります-トレース、パフォーマンスカウンター(最大パーセンテージを確認するため)、どこでもログを記録してみました
テスト シナリオ: 2 非同期。リクエストは送信され (完全な実装にはもう少しあります)、最初の Proxy.End 呼び出しは正常に返されますが、後続のブロックはブロックされます。WCF トレースを確認しましたが、特に興味深いものはありません。同じプロセスとリモート マシンに存在するエンドポイントを自己クエリしていることに注意してください (= 2 つの非同期要求)
私が見る限り、両方のクエリのサービス実装側で呼び出しが行われていますが、後続の終了呼び出しでブロックされるだけです。ただし、リクエストをリモートマシンに送信しているか、それ自体に送信しているかに関係なく、1回の呼び出しで機能するようです。そのため、複数のクエリまたはロックアップを引き起こすその他の要因と関係があります。
さまざまな「concurrencymode」と「instancecontextmode」を試しましたが、結果には関係がないようです。
以下は、ハンドル リストを解析するための内部コードの簡略版です。
そして、これを呼び出すコード:
開始ノードのコールバックをコメント アウトしました (参考までに、実際には 3 層のセットアップですが、問題はこの 2 層が 3 層を呼び出すことに分離されています - コールバックは 2 層から 1 層に移動し、削除されましたこのテストでは)。考え?
asp.net - 頭の体操: Async ASP .Net ページでのコールバック後に IAsyncResult AsyncState が null になる
私は本当にこれでいくつかの助けを借りることができました-私は完全に立ち往生しています:-(
私が開発した検索コンポーネントに Async パターンを (正しく、できれば) 実装しました。これは Async ASP から呼び出されています。RegisterAsyncTask を使用したネット ページ。
コンポーネントが作業を完了すると、指定されたコールバックが呼び出され、AsyncState が値に設定された AsyncResult が渡されます。デバッガーは、コールバックが呼び出されたときに値が null でないことを確認します。
AsyncResult がページのメイン スレッドのコールバック関数へのパラメーターとして到着したとき - AsyncState プロパティは nullです。
これは、検索コンポーネントの関連セクションです。
これは、呼び出しページの分離コードのコードです (このページには Async=true と AsyncTimeout 値が設定されています)。
asp.net - RegisterasyncTask の IsCompletedSynchronously
RegisterAsyncTask を使用して、aspx ページで IO バインド操作を実行しています。私は同じことに関して2つの質問があります。
1) OnBeginEvent で IO 操作を実行し、BeginfXXX を同期的に再実行するとどうなりますか (IAsyncResult.CompletedSynchronouslt = true)。OnEnd ハンドラーが呼び出されますか。
モック IAsyncResult 実装を作成してテストしたところ、OnEnd ハンドラーが呼び出されず、ページのレンダリングも完了していないようです (タイムアウト イベントが発生するまで)。そのような場合はどうすればよいですか?
2) 質問は最初のものに沿ったものです。非同期タスクを登録するとします。ONBegin ハンドラーでは、いくつかの事前ステップを実行し、事前検証に応じて、Onbegin イベントから戻る必要があるだけです。null IAsyncResult (またはモック) を使用して、OnBeginEventHandler から戻ることは可能ですか。上記と同じアプローチを使用してみましたが、うまくいかないようです。
どんな助けでも大歓迎です
ありがとう
クナル
c# - 非同期呼び出しを行う非同期関数
BeginXxx EndXxx非同期パターンを使用するライブラリがあります(明らかに、次のコードは簡略化されています)。
そのライブラリを使用し、同じパターン自体を実装するクラスを構築しようとしています。
(ManualResetEventを使用して)いくつかの解決策を試しましたが、コードが非常に醜いことがわかりました。機能(コールバック、待機ハンドルなど)を失うことなくこれを(C#3.5で)行うための最もクリーンな方法は何ですか?
c# - Action.BeginInvokeを使用したASP.Net非同期ページ
別のスレッドで関数を実行する非同期ページをasp.netに書き込もうとしています。次のコードの問題は、デバッグすると、関数EndAsyncOperationが呼び出されないことです。その結果、ページが完全に読み込まれず、永久に読み込まれます。アクションを使用して、スレッドプールとは別のスレッドでコードを実行します。動作する別のスレッドでコードを実行する別の方法はありますか?
どこが間違っているのですか?
そして別の質問。ASP .Netでは、ページがスレッドプールで実行されていることを読みました。では、サイトをデバッグして数ページを一緒にロードしようとすると、同期して次々にロードされるのでしょうか。